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 相关文章推荐
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
Oct 28 PHP
php json中文编码为null的解决办法
Dec 14 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
Aug 17 PHP
php+ajax 文件上传代码实例
Mar 18 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
如何过滤高亮显示非法字符
2006/10/09 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
Python实现购物车程序
2018/04/16 Python
python清除函数占用的内存方法
2018/06/25 Python
详解Python3的TFTP文件传输
2018/06/26 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
大学生专科毕业生自我评价
2013/11/17 职场文书
大学生心理活动总结
2014/07/04 职场文书
英雄儿女观后感
2015/06/09 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
JavaScript分页组件使用方法详解
2021/07/26 Javascript
Python与C++中梯度方向直方图的实现
2022/03/17 Python
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL