为什么 fgets 在 wamp 上挂在某个 url 上,但在 mamp 上没问题?

发布于 2024-07-13 17:43:03 字数 378 浏览 8 评论 0 原文

我有一个使用 fopen & 读取 RSS 提要的脚本。 fgets。

尝试访问提要时:http://rss.fok.nl/feeds/nieuws我的脚本挂起,直到达到 PHP 的 max_timeout 。

事实是:

  • 直到今天它都运行良好(在同一个网址上)。
  • 它仍然可以在我的开发 mac MAMP 服务器上运行。
  • 它不适用于生产 WAMP 服务器(php 5.2.8)

我尝试了 fread 但没有成功。

有任何想法吗?

I have a script that reads RSS feeds using fopen & fgets.

When trying to the feed at: http://rss.fok.nl/feeds/nieuws my script hangs until the max_timeout of the PHP is reached.

The thing is:

  • it worked perfectly (on the same url) until today.
  • it still works on my development mac MAMP server.
  • it doesn't work on the production WAMP server (php 5.2.8)

I tried fread with no success.

any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

如果没结果 2024-07-20 17:43:03

好吧,这更像是一种解决方法,而不是答案,但我不得不诉诸它。
我使用以下方法切换到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”或缺乏“feof”有关......

Well, it's more of a workaround than an answer, but I had to resort to it.
I used the following to switch over to curl, using this function:

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;
}

I found it here: http://il.php.net/manual/en/function.file-get-contents.php

btw, in case anyone wants to dig deeper, according to other reports of fgets hanging, it seems it has something to do with the 'feof' or lack thereof...

罪歌 2024-07-20 17:43:03

也许尝试使用wireshark(Ethereal)调试您的连接。这应该会给你原因。 也许网络服务器由于用户代理而阻止了您的请求。

您可以在 Windows 机器上手动下载该文件吗?

Perhaps try to debug your connection using wireshark (Ethereal). This should give you the reason. Perhaps the webserver is blocking your requests because of the user-agent.

Can you download the file manually on the Windows machine?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文