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 相关文章推荐
apache+php完美解决301重定向的两种方法
Jun 08 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
thinkPHP和onethink微信支付插件分享
Aug 11 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
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
十天学会php(2)
2006/10/09 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
python删除某个字符
2018/03/19 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
python用requests实现http请求代码实例
2019/10/31 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
serialVersionUID具有什么样的特征
2014/02/20 面试题
医药营销个人求职信范文
2014/02/07 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
优秀团员个人总结
2015/02/26 职场文书
调解书格式范本
2015/05/20 职场文书
学校体育节班级口号
2015/12/25 职场文书
护士医德医风心得体会
2016/01/25 职场文书
小学英语课教学反思
2016/02/15 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL