社区
基础编程
帖子详情
curl、fopen、file_get_contents 哪个效率最高
xxbirch
2010-06-16 08:31:25
curl、fopen、file_get_contents 哪个效率最高?
今天突然想到这么个问题。。。
3个都可以获取远程内容,可是哪个效率最高呢?
有人测试过吗?该怎么测试才能准确呢?
然后有没有效率更高的方法?
谢谢了~大家讨论下~
...全文
1904
23
打赏
收藏
curl、fopen、file_get_contents 哪个效率最高
curl、fopen、file_get_contents 哪个效率最高? 今天突然想到这么个问题。。。 3个都可以获取远程内容,可是哪个效率最高呢? 有人测试过吗?该怎么测试才能准确呢? 然后有没有效率更高的方法? 谢谢了~大家讨论下~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
化蝶自在飞
2010-06-24
打赏
举报
回复
个人认为 file_get_contents 这个最快.
xxbirch
2010-06-19
打赏
举报
回复
好,谢谢各位了~~
fxs_2008
2010-06-18
打赏
举报
回复
因此,如果fsocketopen能打通道的话,他是最快的。
这个一个连接多次请求时才有意义。
fxs_2008
2010-06-18
打赏
举报
回复
[Quote=引用 17 楼 do_fork 的回复:]
spider不是只取一个页面,可能要取成千上万个,
keepalive可以在取完一页之后立即取另一页。
从ext/standard/http_fopen_wrapper.c的源码看,fopen不会keepalive,
file_get_contents请求http时,使用的是http_fopen_wrapper,因此也不会keepalive。
curl是可以设置keep-alive的。
……
[/Quote]
Curl好象是可以模拟浏览器的。所以,可能会打一个持续连接,每个连接有多个请求。如果是这样的话,curl 效率可能是最高的。
要理解这个:即打一个持续连接,多次请求多个页面。(这只在服务器也支持的情况下有效)
据说还有一种是通道连接,比keep alive 更快。
所以,这几个函数,除了在连接上有差别外,其他的差别不大。一个请求和响应的时间都是差不多的。
至于速度吗?自已测下吧
fxs_2008
2010-06-17
打赏
举报
回复
好象区别不大
你主要是取得一个页的源码
keep alive 是打开一个持续连接,这个在浏览器中有意义,因为要加载很多连接,而我们这里只取源码
不需要更多请求。
不知道这些函数在打开一个新页时是否还能仍用上个连接。
至于搜索引擎。差别也不太,只不过搜索引擎请求时会智能判断,比如:无改变的就不请求实体。
这些都是基于http协议理解。
天降大任于斯
2010-06-17
打赏
举报
回复
路过,来学习的
Fusuton
2010-06-17
打赏
举报
回复
学习学习~~~
原来抓取内容的方法还有这些区别
dehexiao
2010-06-17
打赏
举报
回复
路过,学习了!
Dogfish
2010-06-17
打赏
举报
回复
spider应该是用别的语言写的。php也可以。看怎么使用。
xxbirch
2010-06-17
打赏
举报
回复
谢谢各位,其实我不是想写爬虫程序,只是突然想到这3个函数都能抓取远程数据,就想了解下PHP左右能抓取远程数据的函数之间的效率对比。
如果能有方便点的测试方法更好,我本机配置不太好。。
再多留一段时间,多讨论讨论,就针对PHP函数的效率而言,不是针对爬虫程序的开发和效率问题。
CodeBus
2010-06-17
打赏
举报
回复
蜘蛛一般不会用PHP吧,C/C+靠谱些。其实可以直接写socket发HTTP的。
要做漂亮的美女IT人员
2010-06-17
打赏
举报
回复
[Quote=引用 6 楼 li_birch 的回复:]
to #4:
其他的应该会更好,但我目的是想了解下在PHP环境中的方法、函数之类的
to #5:
keep-alive在服务器中可以设置,这个没问题的。
像现在有个汉景搜索的程序,就是PHP的,当然他主要是在中文分词上面的应用,但也需要抓取页面
[/Quote]
汉景搜索?? 我怎么没查到啊??用百度查也没查到...
myhope88
2010-06-17
打赏
举报
回复
路过,来学习的
kyzy_yy_pm
2010-06-17
打赏
举报
回复
php 用curl、fopen来抓取等以上的都可以的,还有其他的
woliujinyuan
2010-06-17
打赏
举报
回复
标个记号,慢慢学习
xxbirch
2010-06-17
打赏
举报
回复
to #4:
其他的应该会更好,但我目的是想了解下在PHP环境中的方法、函数之类的
to #5:
keep-alive在服务器中可以设置,这个没问题的。
像现在有个汉景搜索的程序,就是PHP的,当然他主要是在中文分词上面的应用,但也需要抓取页面
do_fork
2010-06-17
打赏
举报
回复
当然是支持keep-alive的快了
asssasharp
2010-06-17
打赏
举报
回复
蜘蛛程序是用php吗?其他的脚本语言,如C#速度更快吧。帮顶。
xxbirch
2010-06-17
打赏
举报
回复
顶起来继续问。。
有什么高效的抓取远程信息的方法呢?
蜘蛛的效率应该是很不错的了,那用的是什么方法呢一般?
do_fork
2010-06-17
打赏
举报
回复
spider不是只取一个页面,可能要取成千上万个,
keepalive可以在取完一页之后立即取另一页。
从ext/standard/http_fopen_wrapper.c的源码看,fopen不会keepalive,
file_get_contents请求http时,使用的是http_fopen_wrapper,因此也不会keepalive。
curl是可以设置keep-alive的。
一般做搜索的大点的公司,爬虫不会用php写,不是C就是C++
加载更多回复(3)
php中
file
_get_content 和
curl
以及
fopen
效率
分析
curl
多用于互联网网页之间的抓取,
fopen
多用于读取文件,而
file
_get_
contents
多用于获取静态页面的内容。 1.
fopen
/
file
_get_
contents
每次请求都会重新做DNS查询,并不对DNS信息进行缓存。但是
CURL
会自动对DNS信息...
关于
file
_get_
contents
返回为空或函数不可用的解决方案
使用
file
_get_
contents
和
fopen
必须空间开启allow_url_
fopen
。方法:编辑php.ini,设置allow_url_
fopen
= On,allow_url_
fopen
关闭时
fopen
和
file
_get_
contents
都不能打开远程文件。如果你使用的是虚拟主机可以考虑用...
cURL
实战教程
由King老师精心打造
cURL
实战课程,由浅入深的讲解了
cURL
中常见的API,及
cURL
在实际开发中的应用,实现了模拟登陆、文件上传下载、多线程
cURL
等。通过
cURL
可以操作各种网络资源! 山哥出品,必属精品!
深入
file
_get_
contents
函数抓取内容失败的原因分析
用
file
_get_
contents
来抓取页面内容不成功,可能是因为有些主机服务商把php的allow_url_
fopen
选项是关闭了,就是没法直接使用
file
_get_
contents
来获取远程web页面的内容。那就是可以使用另外一个函数
curl
。下面是...
深入
file
_get_
contents
与
curl
函数的详解
下面是
file
_get_
contents
和
curl
两个函数同样功能的不同写法
file
_get_
contents
函数的使用示例:复制代码 代码如下:< ?php$
file
_
contents
=
file
_get_
contents
(‘https://www.jb51.net’);echo $
file
_...
基础编程
21,887
社区成员
140,363
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章