file_get_contents與curl的比較

iteye_3607發表於2011-10-10

file_get_contents與curl的比較(轉)


轉載;http://blog.sina.com.cn/s/blog_4ce69a220100lm1a.html


以前在讀取遠端檔案的時候,我一直喜歡使用file_get_contents,原因是在PHP的手冊裡面介紹讀取文

件內容的時候,首選此函式。但是現在發現,如果是遠端檔案,curl才是首選。file_get_contents用來

讀取本地檔案才是首選。

<wbr></wbr>

首先說效能,下面在一個在國外網站上看到的二者的讀取google.com首頁的測試:

<wbr></wbr>

Fetching google.com using file_get_contents took(in seconds):

<wbr></wbr>

2.31319094
2.30374217
2.21512604
3.30553889
2.30124092

<wbr></wbr>

CURLtook:

<wbr></wbr>

0.68719101
0.64675593
0.64326
0.81983113
0.63956594

<wbr></wbr>

具體還沒有測試,不過可以參考一下。

<wbr></wbr>

二是兩者除了效能以外,確實還有一些其他的區別,這裡順便說說fopen:

<wbr></wbr>

fopen不會keepalive,

file_get_contents請求http時,使用的是http_fopen_wrapper,也不會keeplive,

<wbr></wbr>

而curl卻是可以的。

<wbr></wbr>

這個是讀取一般檔案的時候並沒有什麼問題,但是在讀取遠端問題的時候就會出現問題。如果是要打一個

持續連線,多次請求多個頁面。那麼file_get_contents和fopen就會出問題。取得的內容也可能會不

對。所以做一些類似採集工作的時候,肯定就有問題了。

<wbr></wbr>

注意到了這個問題,以後如果要給系統做採集功能的時候,就用得著了。


相關文章