2009-06-02 30 views
2

我有一個PHP腳本需要處理同一站點的RSS源。具體來說,我在主頁上顯示WordPress RSS feed中的最新博客。在我們的登臺服務器上它運行良好,但在我們的現場(這是一個完全不同的,但LAMP)託管環境,它不工作。在同一服務器上使用file_get_contents或捲曲到url

我可以在遠程網址上運行file_get_contentscurl,但是當我嘗試檢索自己的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

+0

是否有可能在/ etc/hosts中設置了www.bkwld.com或bkwld.com? – 2009-06-02 17:10:33

回答

2

好吧,我仍然不知道爲什麼它會這樣做,但我要解決它通過feedburner運行我的飼料,然後解析它的RSS源。因爲它位於遠程域中,所以它在我的測試中起作用。不理想,但有w/e。

1

我有一個非常類似的問題 - 你可以嘗試使用127.0.0.1而不是你自己的域名(假設你的apache設置不會阻止你這樣做)。與我認爲的域名解析有關的事情,api的怪癖。

+3

如果該站點位於VirtualHost上,則會完全失敗。 – grawity 2009-06-02 16:00:13

+0

是的,我很不幸。 – weotch 2009-06-02 16:24:58

0

確實很奇怪。你將如何解析文件?您可以直接將其加載到SimpleXML中;

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

我意識到這種方法並不能解決你的問題,你只用另一種方法 - 但也許你已經足夠。

1

我剛剛有這個類似的問題。 DNS是問題,它不是解決你的域名。您應該在腳本中使用IP而不是域。

您可以在cmd中ping您的域並使用該IP。

0

如果domain.com/test.txt返回404,並且www.domain.com/test.txt成功,則主機DNS可能承載的域配置不同。無論如何,我確定你已經試着用'www'檢索RSS feed,但是你是否嘗試過使用相對路徑?例如:file_get_contents('../../feed/')