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 相关文章推荐
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
简单谈谈favicon
Jun 10 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 PHP
php 策略模式原理与应用深入理解
Sep 25 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
PHP实现简易用户登录系统
Jul 10 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 删除无限级目录与文件代码共享
2008/11/22 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
javascript连续赋值问题
2015/07/08 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
利用jQuery解析获取JSON数据
2017/04/08 jQuery
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
详解webpack 多页面/入口支持&公共组件单独打包
2017/06/29 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
英文自荐信
2013/12/19 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
法制宣传月活动总结
2014/04/29 职场文书
企业宣传策划方案
2014/05/29 职场文书
民间个人借款协议书
2014/09/30 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电