Android Tablet PC на DHgate.com


PHP – определение размера файла на удаленном сервере

Встала острая необходимость получить размер тысячи огромных файлов, которые лежали на удаленном сервере. Нужно было получить общее количество МБ всех файлов, для того, что бы понять, хватит ли места на сервере если выкачать все эти файлы. На 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://artkiev.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;
?>

Другие публикации:



Написать комментарий через:

 
               
  • Локальный блог
  •  
 

Ваш отзыв

Имя *

Почта (скрыта) *

Сайт

Напишите цифрами двa вoceмь двa *

Сообщение

 
Возврат % от покупок
Статусы для соц.сетей на ArtKiev Design Studio