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遍历数组的方法分享
Mar 22 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
PHP内存使用情况如何获取
Oct 10 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
php数组分页实现方法
Apr 30 PHP
Adnroid 微信内置浏览器清除缓存
Jul 11 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
Laravel框架路由管理简单示例
May 07 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 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版本实现代码
2012/09/15 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
js Dialog 实践分享
2012/10/22 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
Python如何读写二进制数组数据
2020/08/01 Python
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
Java面试题:为什么要用Java
2012/05/11 面试题
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
大学信息公开实施方案
2014/03/09 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
英语教师求职信
2014/06/16 职场文书
财务出纳岗位职责
2015/03/31 职场文书
golang特有程序结构入门教程
2021/06/02 Python
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL