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的安全
Oct 09 PHP
用php写的serv-u的web申请账号的程序
Oct 09 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
linux中cd命令使用详解
Jan 08 PHP
PHP下载远程文件到本地存储的方法
Mar 24 PHP
php实现可逆加密的方法
Aug 11 PHP
CodeIgniter自定义控制器MY_Controller用法分析
Jan 20 PHP
PHP错误机制知识汇总
Mar 24 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
php处理复杂xml数据示例
Jul 11 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 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加密解密类实例代码
2016/07/20 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
Python的print用法示例
2014/02/11 Python
对于Python中线程问题的简单讲解
2015/04/03 Python
Python生成不重复随机值的方法
2015/05/11 Python
快速入手Python字符编码
2016/08/03 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
Python 实现微信防撤回功能
2019/04/29 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
const和static readonly区别
2013/05/20 面试题
卫校毕业生自我鉴定
2013/10/31 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
春节联欢会主持词
2014/03/24 职场文书
甜品店创业计划书
2014/08/14 职场文书
员工试用期自我评价
2014/09/18 职场文书
奔腾年代观后感
2015/06/09 职场文书
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android