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 相关文章推荐
ADODB的数据库封包程序库
Dec 31 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
Jun 17 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
Yii框架的布局文件实例分析
Sep 04 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 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
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
python中异常报错处理方法汇总
2016/11/20 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
Python中super函数用法实例分析
2019/03/18 Python
python中pyplot基础图标函数整理
2020/11/10 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
租房合同协议书
2014/04/09 职场文书
档案信息化建设方案
2014/05/16 职场文书
青年文明号汇报材料
2014/12/23 职场文书
自我工作评价范文
2015/03/06 职场文书
小学运动会加油词
2015/07/18 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL
工厂无线对讲系统解决方案
2022/02/18 无线电