在同一服务器上使用file_get_contents或卷曲到url
我有一个PHP脚本需要处理同一站点的RSS源。具体来说,我在主页上显示WordPress RSS feed中的最新博客。在我们的登台服务器上它运行良好,但在我们的现场(这是一个完全不同的,但LAMP)托管环境,它不工作。在同一服务器上使用file_get_contents或卷曲到url
我可以在远程网址上运行file_get_contents
或curl
,但是当我尝试检索自己的RSS提要时,我返回了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
好吧,我仍然不知道为什么它会这样做,但我要解决它通过feedburner运行我的饲料,然后解析它的RSS源。因为它位于远程域中,所以它在我的测试中起作用。不理想,但有w/e。
确实很奇怪。你将如何解析文件?您可以直接将其加载到SimpleXML中;
$xml = simplexml_load_file("http://domain.com/blog/feed/index.php");
/* Use Simple XML to parse the RSS feed */
我意识到这种方法并不能解决你的问题,你只用另一种方法 - 但也许你已经足够。
我刚刚有这个类似的问题。 DNS是问题,它不是解决你的域名。您应该在脚本中使用IP而不是域。
您可以在cmd中ping您的域并使用该IP。
如果domain.com/test.txt返回404,并且www.domain.com/test.txt成功,则主机DNS可能承载的域配置不同。无论如何,我确定你已经试着用'www'检索RSS feed,但是你是否尝试过使用相对路径?例如:file_get_contents('../../feed/')
是否有可能在/ etc/hosts中设置了www.bkwld.com或bkwld.com? – 2009-06-02 17:10:33