您的位置:首页 > 其它

file_get_contents与curl的比较

2015-06-05 10:26 477 查看
以前在读取远程文件的时候,我一直喜欢使用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就会出问题。取得的内容也可能会不

对。所以做一些类似采集工作的时候,肯定就有问题了。



注意到了这个问题,以后如果要给系统做采集功能的时候,就用得着了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: