2011-11-22 51 views
1

我試圖編寫一個RSS提要,它將拉下一個提要並使用XMLReader(或DOMdocument)來提取可用標籤列表。PHP cURL和file_get_contents給出了不同的結果?

我的主機沒有啓用file_get_contents,所以我把feed放到一個變量中,然後使用「從字符串加載」的方式來實例化我的XMLreader或DOMdocument(到目前爲止我已經嘗試了這兩種方法)。

當我測試我的本地盒(我啓用file_get_contents)我的腳本能夠拉出XML標籤。但是,當我使用cURL時,出現一系列錯誤。

我已經試過在使用html_entity_decode之後對UTF8進行編碼。

我使用捲曲的選項有:

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

如果我抓住從我的瀏覽器進文本,並將其保存爲我的箱子文件,然後我的腳本也能夠識別標籤。

使用cURL時出現的錯誤是解析錯誤。

所以我的問題是 - 我必須使用哪些設置與cURL才能解析RSS?

+0

你什麼錯誤? –

+0

file_get_contents可能會忽略或透明地解決HTTP問題。 cURL不。因此,通過測試file_get_contents和cURL之間的差異,解決此問題的最佳方法很可能是。你已經嘗試了什麼?如果主機禁用基本的PHP函數 - 移動主機,則返回 – jmkeyes

+0

。 – 2011-11-22 06:46:07

回答

2

不要使用file_get_contents()作爲遠程文件,它非常緩慢,非常密集的cpu,並且不像curl具有的靈活性那樣處理重定向,緩存,cookie等。

甚至比捲曲更好;更快,更靈活,更少的CPU密集使用fsocket ......還有很多PHP類,使得它死了簡單的做到這一點,這裏是我的最愛之一:

http://scripts.incutio.com/httpclient/

相關問題