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 相关文章推荐
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
smarty简单应用实例
Nov 03 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
php获取客户端IP及URL的方法示例
Feb 03 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 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
数据库中排序的对比及使用条件详解
2012/02/23 PHP
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python制作爬虫抓取美女图
2016/01/20 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
C语言如何决定使用那种整数类型
2016/11/26 面试题
介绍一下常见的木马种类
2014/11/15 面试题
QA工程师岗位职责
2013/11/20 职场文书
个人委托书范本
2014/04/02 职场文书
机械专业求职信
2014/05/25 职场文书
球队口号
2014/06/18 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
2014年维修工作总结
2014/11/22 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL