Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ответ 004 на задачу N 13
 
 автор: SoftTime   (21.03.2006 в 16:18)   письмо автору
 
 

Ответ 004 на задачу N 13.
С условиями задачи можно ознакомится по ссылке.

<?
 
function getRemoteFileSize($url){
   
$parse parse_url($url);
   
$host $parse['host'];
   
$fp = @fsockopen ($host80$errno$errstr20);
   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 ($fp128); 
     }
     
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://www.softtime.ru/files/whois.zip';
 
$size getRemoteFileSize($url);
 if(
$size==0) echo "Не могу соединиться";
 elseif(
$size<0) echo "Ошибка. Код ответа HTTP: ".(-1*$size);
 else echo 
"Размер удалённого файла (bytes): ".$size;  
?>

Axxil

http://www.softtime.ru/info/task.php?id_article=83

   
 
 автор: cheops   (27.03.2006 в 01:06)   письмо автору
 
   для: SoftTime   (21.03.2006 в 16:18)
 

Достатчно компактно, работает и работает как надо. Ход с HEAD очень хитрый и хороший - в этом случае тело запроса не грузится и не нужно отслеживать лишний перевод строки между HTTP-заголовками и телом запроса.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования