file_get_contents与curl的比较(摘)

phper| 阅读:804 发表时间:2012-07-21 04:53:00 php
摘要:以前在读取远程文件的时候,我一直喜欢使用file_get_contents,原因是在PHP的手册里面介绍读取文件内容的时候,首选此函数。但是现在发现,如果是远程文件,curl才是首选。file_get_contents用来读取本地文件...

以前在读取远程文件的时候,我一直喜欢使用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就会出问题。取得的内容也可能会不对。所以做一些类似采集工作的时候,肯定就有问题了。

注意到了这个问题,以后如果要给系统做采集功能的时候,就用得着了。

摘自:本文非原创,英雄沦落无人知?
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有0条评论

昵称:
邮箱:

  • 最新评论

iPhone查询中 - bbs.ipcxz.com 朋友帮 - www.pengyb.cn iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号