php中file_get_content 和curl以及fopen 效率分析


Posted in PHP onSeptember 19, 2014

三个函数虽然都是读取资源的函数,但各自的应用场景不同。

curl多用于互联网网页之间的抓取,fopen多用于读取文件,而file_get_contents多用于获取静态页面的内容。

1. fopen /file_get_contents 每次请求都会重新做DNS查询,并不对DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS查询。这大大减少了DNS查询的次数。所以CURL的性能比fopen /file_get_contents 好很多。

2. fopen /file_get_contents在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而curl却可以。这样在多次请求多个链接时,curl效率会好一些。

3. curl可以模拟多种请求,例如:POST数据,表单提交等,用户可以按照自己的需求来定制请求。而fopen / file_get_contents只能使用get方式获取数据。

PHP 相关文章推荐
php分页示例代码
Mar 19 PHP
PHP 源代码压缩小工具
Dec 22 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
php旋转图片90度的方法
Nov 07 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 PHP
详解Laravel制作API接口
May 31 PHP
PHP return语句另类用法不止是在函数中
Sep 17 #PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 #PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 #PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 #PHP
php数组中删除元素之重新索引的方法
Sep 16 #PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
Sep 16 #PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 #PHP
You might like
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
php桥接模式应用案例分析
2019/10/23 PHP
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
JavaScript知识点整理
2015/12/09 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
AJAX的优缺点都有什么
2015/08/18 面试题
生物化工工艺专业应届生求职信
2013/10/08 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
《画家乡》教学反思
2014/04/22 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
新兵入伍决心书
2015/09/22 职场文书