Почему fgets висит на определенном URL на wamp, но нормально на mamp? - PullRequest
1 голос
/ 19 февраля 2009

У меня есть скрипт, который читает RSS-каналы, используя fopen & fgets.

При попытке подачи на: http://rss.fok.nl/feeds/nieuws мой скрипт зависает до тех пор, пока не будет достигнуто максимальное время ожидания PHP.

Дело в том:

  • до сегодняшнего дня он работал идеально (по тому же адресу).
  • он все еще работает на моем сервере mac MAMP для разработки.
  • не работает на рабочем сервере WAMP (php 5.2.8)

Я попробовал фред безуспешно.

есть идеи?

Ответы [ 2 ]

1 голос
/ 20 февраля 2009

Ну, это скорее обходной путь, чем ответ, но мне пришлось прибегнуть к нему. Я использовал следующее, чтобы переключиться на curl, используя эту функцию:

function curl_get_file_contents($URL)
{
    $c = curl_init();
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($c, CURLOPT_URL, $URL);
    $contents = curl_exec($c);
    curl_close($c);

    if ($contents) return $contents;
        else return FALSE;
}

Я нашел это здесь: http://il.php.net/manual/en/function.file-get-contents.php

Кстати, в случае, если кто-то захочет копать глубже, согласно другим сообщениям о зависании fgets, кажется, что это как-то связано с «feof» или его отсутствием ...

0 голосов
/ 19 февраля 2009

Возможно, попытайтесь отладить ваше соединение, используя wireshark ( Ethereal ). Это должно дать вам причину. Возможно, веб-сервер блокирует ваши запросы из-за пользовательского агента.

Можете ли вы загрузить файл вручную на компьютере с Windows?

...