file_get_contents與curl的比較
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>
注意到了這個問題,以後如果要給系統做採集功能的時候,就用得著了。
相關文章
- PHP file_get_contents 與 curl 效能比較PHP
- curl, fsockopen ,file_get_contents
- curl的速度為什麼比file_get_contents快以及具體原因
- 測評file_get_contents與curl 效率及穩定性
- file_get_contents與curl效率及穩定性問題
- PostgreSQL與MySQL的比較 - hackrMySql
- MVVM與MVC模式的比較MVVMMVC模式
- XTask與RxJava的使用比較RxJava
- JavaScript 與 Java、PHP 的比較JavaScriptPHP
- Hadoop與Spark的比較HadoopSpark
- CMM/CMMI 與敏捷的比較敏捷
- Hibernate與 MyBatis的比較MyBatis
- CoffeeScript與Ruby的比較
- Vue與React比較VueReact
- 【Redis與Memcached比較】Redis
- RecyclerView與ListView比較View
- js與jq比較JS
- PostgreSQL與MySQL比較MySql
- Vuex與Redux比較VueRedux
- Go 與 C++ 的對比和比較GoC++
- oracle中字串的大小比較,字串與數字的比較和運算Oracle字串
- Go與C#的比較 - RedditGoC#
- Flutter與React Native的比較FlutterReact Native
- Docker 與 Podman 容器管理的比較Docker
- OSI模型 與 DOD模型的比較模型
- Hibernate與 MyBatis的比較(轉)MyBatis
- ORACLE的count與空值比較Oracle
- sap與ORACLE的ERP比較Oracle
- C與I型別的比較型別
- Querydsl與JPA標準的比較
- React與Vue模板使用比較(一、vue模板與React JSX比較)ReactVueJS
- Flutter 與 iOS 功能比較FlutteriOS
- Flutter與Swift比較 - evroneFlutterSwiftVR
- Hibernate與mybatis比較MyBatis
- Python 與 Javascript 比較PythonJavaScript
- POWER BI - 與其他BI工具的比較
- Mysql中的Btree與Hash索引比較MySql索引
- Apache與Nginx的優缺點比較ApacheNginx