file_get_contents與curl的比較

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

件內容的時候,首選此函數。但是現在發現,如果是遠程文件,curl纔是首選。file_get_contents用來

讀取本地文件纔是首選。

 

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

 

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

 

2.31319094
2.30374217
2.21512604
3.30553889
2.30124092

 

CURLtook:

 

0.68719101
0.64675593
0.64326
0.81983113
0.63956594

 

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

 

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

 

fopen不會keepalive,

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

 

而curl卻是可以的。

 

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

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

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

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章