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就会出问题。取得的内容也可能会不
对。所以做一些类似采集工作的时候,肯定就有问题了。
注意到了这个问题,以后如果要给系统做采集功能的时候,就用得着了。
件内容的时候,首选此函数。但是现在发现,如果是远程文件,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就会出问题。取得的内容也可能会不
对。所以做一些类似采集工作的时候,肯定就有问题了。
注意到了这个问题,以后如果要给系统做采集功能的时候,就用得着了。
相关文章推荐
- Android 布局 fill_parent、wrap_content和match_parent的区别和作用
- Js、css代码文件规范
- iOS 绘图详解
- eval、json.parse()的介绍和使用注意点
- 58数据库重建表空间记录
- 易语言软件加VMProtect壳的正确方法
- mysql多表查询、子查询
- 基于python 的性能测试工具
- java基础—泛型简述
- Android属性动画完全解析(上),初识属性动画的基本用法
- 50.单项链表逆置
- Java实例变量初化顺序
- 【【分享】深入浅出WPF全系列教程及源码 】
- js中调用函数时加不加括号的问题
- 项目管理——随笔 2015.06.05
- AfxMessageBox和MessageBox区别
- iOS 6导入PCH,开发必备
- Project Euler:Problem 43 Sub-string divisibility
- PCA原理及实现
- C#的StringBuilder 以及string字符串拼接的效率对照