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

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

 

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

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

тема: Ответ 006 на задачу N 13
 
 автор: SoftTime   (24.03.2006 в 19:44)   письмо автору
 
 

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

<?php  //      Запрос длины ресурса
if(isset($_GET['name']))
{  
// получим ссылку и очистим её от возможных магических кавычек
  
$name get_magic_quotes_gpc() ? stripslashes($_GET['name']): $_GET['name'];
  
// разберем её на составляющие
  
$url parse_url($name);
  
$host = isset($url['host'])? $url['host'] : "www.softtime.ru";
  
$path = isset($url['path'])? $url['path'] : "/";
  
$port = isset($url['port'])? $url['port'] : 80;

  if(isset(
$url['query']))           // вернем параметры запроса,
      
$path .= '?' $url['query']; // если были в исходном URI
  // попробуем соединиться с сервером
  
if(!($f fsockopen($host$port$ern$ers)))
      die(
"Cannot connect to $host: Error #$ern ($ers)");
  
// и запросить заголовок (HEAD) отклика
  
fputs($f"HEAD $path HTTP/1.0\r\nHOST: $host\r\n\r\n");
  
// прочтем ответ
  
for($reply ''; !feof($f); )  $reply .= fgets($f);
  
fclose($f);

  
// Если положительный ответ не пришел
  
if(!preg_match("|^HTTP/[\d]+\.[\d]+[\s]+200[\s]|i"$reply))
      { 
$linesexplode("\n"$reply); echo $lines[0]; } // покажем ответ
  
else        // определим и напечатаем длину
      
if(preg_match("|\nContent-length:[\s]+([\d]+)|i"$reply$res))
          echo 
"File $nm is ${res[1]} bytes length\r\n";
      else  
// или весь ответ в случае неудачи.
          
echo "Cannot detect length of file $name\r\n<pre>"
               
.htmlspecialchars($reply)."</pre>";
}
?> <form><input name=name size=40
     value = "http://www.softtime.ru/files/whois.zip" />
     <input type=submit value=size? /> </form>

Trianon

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

   
 
 автор: cheops   (27.03.2006 в 01:26)   письмо автору
 
   для: SoftTime   (24.03.2006 в 19:44)
 

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

   
Rambler's Top100
вверх

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