Общие > Веб-технологии
Ответ нулевой длинны
Diesel:
Скрипт посылает HTTP запросы на сайты через сокет и получает ответ котрый затем парсится и заносится в БД. Под Win2k PHP 4.3 работает. Когда закачиваю на сервер под линух PHP 4.2 выдаёт
ОШИБКА
Запрошенный URL не может быть доставлен
--------------------------------------------------------------------------------
Во время доставки URL: http://soff.ifrigate.ru/scanner.php
Произошла следующая ошибка:
Ответ нулевой длины
Кэш не получил никаких данных в ответ на этот запрос.
--------------------------------------------------------------------------------
Generated Tue, 04 Mar 2003 13:39:04 GMT by if8 (squid/2.5.STABLE1)
Сам скрипт не привожу тк он большой... Да и вещи там вполне заурядные... Открывается сокет, читается хмл...
Данные для каждого сайта читаются из XML и на их основе строится запрос котрый и шлётся на сервер. phpinfo() говорит что PHP поддерживает и xml и xpath и сокеты. Сам не на что не ругается, никаких ошибок не выдает, но при попытке чтения из сокета получаю ошибку. Может что то в настройках сервера или PHP?
Макс:
Если не ошибаюсь работа с xml пока что в php - experimental
Я такие ошибки обычно лечу так:
закоментирую весь скрипт
проверяю, выводит ли 1
Далее открываю какую-то часть скрипта:
таким образом нахожу какая именно строка выдает ошибку.
Ничего умнее я для решения таких проблем не придумал.
На практике я встречал такое только при использовании virtual(); .
Diesel:
Спасибо. Я нашел точную строку где ошибка. Это происходит при чтении из сокета. Но почему? XML кстати не виноват. Он нормально читается. Запросы тоже правильные шлю, под виндой же работает...
Макс:
ну так строку покажи и несколько ближайших.
Diesel:
Вот этот метод:
function get_result()
{
if (isset($this->fp))
{
while (!feof($this->fp))
print $this->result .= fgets($fp,1280);
//Ещё и так пробовал
// $this->result = fread($this->fp, 60000000);
$this->all_content.=$this->result;
return $this->result;
}
else
return 0;
}
Навигация
Перейти к полной версии