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

Форум PHP

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

 

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

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

тема: Обновился url или нет?
 
 автор: Хулиган   (29.03.2008 в 10:24)   письмо автору
 
 

Как определить, обновился файл xml на удаленном сервере или нет?
filesize, filemtime и stat не работают.
Пробую через сокет:
<?
  $sock 
fsockopen("www.vesti.ru"80$errno$errstr60);
    if (!
$sock) die("$errstr ($errno)\n");

    
fwrite($sock"HEAD /vesti.rss HTTP/1.1\r\n");
    
fwrite($sock"HOST: www.vesti.ru\r\n");
  
fwrite($sock"\r\n");

  
$headers "";
  while (
$str trim(fgets($sock4096)))
    
$headers .= "$str\n";

  
fclose($sock);

  print 
$headers;
?>


Возвращается пустая строка.
Если брать какой-нибудь другой url, то хидер возвращается. С нужного мне url - ничего.
Почему?

   
 
 автор: cheops   (29.03.2008 в 11:03)   письмо автору
 
   для: Хулиган   (29.03.2008 в 10:24)
 

Судя по всему запрещён HEAD для этого файла, используйте GET, но считывайте информацию только до первой пустой строки - это и будут HTTP-заголовки.

   
 
 автор: Хулиган   (29.03.2008 в 11:26)   письмо автору
 
   для: cheops   (29.03.2008 в 11:03)
 

Ну собственно цикл while и читает до первой пустой строки...
Заменил HEAD на GET, но в полученых заголовках длины файла не наблюдается :(

HTTP/1.1 200 OK
Date: Sat, 29 Mar 2008 08:27:11 GMT
Server: Apache/1.3.26
Cache-Control: max-age=2400
Expires: Sat, 29 Mar 2008 09:07:11 GMT
X-Powered-By: PHP/4.0.4pl1
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=windows-1251
Age: 74

Это всё что отдает сокет.

   
 
 автор: cheops   (29.03.2008 в 12:09)   письмо автору
 
   для: Хулиган   (29.03.2008 в 11:26)
 

Она наблюдается только в двух случаях: файл статический и Apache автоматически подцепляет его размер, файл динамический (Apache не может в этом случае спрогнозировать размер) и разработчики озаботились отправкой соответствующего HTTP-заголовка.

   
 
 автор: Хулиган   (29.03.2008 в 12:24)   письмо автору
 
   для: cheops   (29.03.2008 в 12:09)
 

Видимо, товарищи не озаботились отправкой заголовка с указанием длины..
Придется гонять траффик впустую по cron'у.

Спасибо за помощь.

   
Rambler's Top100
вверх

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