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 相关文章推荐
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
关于js与php互相传值的介绍
Jun 25 PHP
php中的比较运算符详解
Oct 28 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 PHP
php微信公众号开发之秒杀
Oct 20 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
php传值和传引用的区别点总结
Nov 19 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
Zerg剧情介绍
2020/03/14 星际争霸
解析smarty模板中类似for的功能实现
2013/06/18 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
JavaScript模拟push
2016/03/06 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
Python迭代器和生成器介绍
2015/03/06 Python
Python自定义线程池实现方法分析
2018/02/07 Python
如何用Python合并lmdb文件
2018/07/02 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python的sorted用法详解
2019/06/25 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
保护环境建议书400字
2014/05/13 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
python Polars库的使用简介
2021/04/21 Python
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
Java 关于String字符串原理上的问题
2022/04/07 Java/Android
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS