067 607 57 84
заповніть форму нижче:
Постала гостра необхідність отримати розмір тисячі величезних файлів, які лежали на віддаленому сервері. Потрібно було отримати загальну кількість МБ всіх файлів, для того, що б зрозуміти, чи вистачить місця на сервері якщо скачати всі ці файли. На php це реалізувати досить просто і швидко. Отримати розмір віддаленого файлу можна з HTTP-заголовків
<?
function getRemoteFileSize($url){
$parse = parse_url($url);
$host = $parse['host'];
$fp = @fsockopen ($host, 80, $errno, $errstr, 20);
if(!$fp){
$ret = 0;
}else{
$host = $parse['host'];
fputs($fp, "HEAD ".$url." HTTP/1.1\r\n");
fputs($fp, "HOST: ".$host."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$headers = "";
while (!feof($fp)){
$headers .= fgets ($fp, 128);
}
fclose ($fp);
$headers = strtolower($headers);
$array = preg_split("|[\s,]+|",$headers);
$key = array_search('content-length:',$array);
$ret = $array[$key+1];
}
if($array[1]==200) return $ret;
else return -1*$array[1];
}
$url = 'http://site.com/blog/wp-content/uploads/2012/12/sreda.zip';
$size = getRemoteFileSize($url);
if($size==0) echo " Не можу з'єднатися ";
elseif($size<0) echo " Помилка. Код відповіді HTTP: ".(-1*$size);
else echo " Розмір віддаленого файлу (bytes): ".$size;
?>