在同一台服务器上使用file_get_contents或curl来url

时间:2009-06-02 15:23:50

标签: php rss curl file-get-contents

我有一个需要处理同一网站的RSS源的PHP脚本。具体来说,我正在主页上的WordPress RSS提要中显示最新的博客。在我们的登台服务器上它工作正常,但在我们的直播(这是一个完全不同,但LAMP)托管环境,它不起作用。

我可以在远程网址上运行file_get_contentscurl,但是当我尝试检索自己的RSS Feed时,我会返回404找不到的网页。另一个奇怪的是,如果我尝试file_get_contents(http://domain.com/test.txt)它失败了404,但如果我file_get_contents(http://www.domain.com/test.txt)我得到了测试文本文件的内容。这是假设我从domain.com(而不是www.domain.com)运行脚本

我在这里设置了一个示例:http://bkwld.com/test.php

5 个答案:

答案 0 :(得分:2)

好吧,我仍然不知道它为什么会这样做,但是我要通过feedburner运行我的feed然后解析它的RSS feed来解决它。因为它在远程域上,所以它在我的测试中有效。不理想,但没有。

答案 1 :(得分:1)

我遇到了一个非常类似的问题 - 您可能会尝试使用127.0.0.1而不是您自己的域名(假设您的apache设置不会阻止您这样做)。与域名解析有关,我相信,api的怪癖。

答案 2 :(得分:1)

我刚才有类似的问题。 DNS是问题,它不解析您的域名。您应该在脚本中使用IP而不是域。

您可以在cmd中ping您的域并使用该IP。

答案 3 :(得分:0)

确实很奇怪。你将如何解析文件?你可以直接将它加载到SimpleXML中;

$xml = simplexml_load_file("http://domain.com/blog/feed/index.php");
/* Use Simple XML to parse the RSS feed */

我意识到这种方法并没有解决你的问题,你只使用另一种方法 - 但也许这对你来说已经足够了。

答案 4 :(得分:0)

如果domain.com/test.txt返回404且www.domain.com/test.txt成功,则主机DNS可能已托管以不同方式配置的域。在任何情况下,我确定你已经尝试用'www'检索RSS提要,但你尝试使用相对路径吗?例如:file_get_contents('../../feed/')