比file_get_contents稳定的curl_get_contents分享


Posted in PHP onJanuary 11, 2012

分享一个实际在用的函数:

/*比file_get_contents稳定的多!$timeout为超时时间,单位是秒,默认为1s。*/ 
function curl_get_contents($url,$timeout=1) { 
$curlHandle = curl_init(); 
curl_setopt( $curlHandle , CURLOPT_URL, $url ); 
curl_setopt( $curlHandle , CURLOPT_RETURNTRANSFER, 1 ); 
curl_setopt( $curlHandle , CURLOPT_TIMEOUT, $timeout ); 
$result = curl_exec( $curlHandle ); 
curl_close( $curlHandle ); 
return $result; 
} 
$hx = curl_get_contents('https://3water.com');

相信使用过file_get_contents函数的朋友都知道,当获取的$url访问不了时,会导致页面漫长的等待,甚至还能导致PHP进程占用CPU达100%,因此这个函数就诞生了。curl的一些常识介绍
保留原file_get_contents函数的原因是当读取本地文件时,用原生的file_get_contents显然更合适。
另来自张宴的file_get_contnets的优化,具体可看:https://3water.com/article/28030.htm
同样是设置超时时间来解决这个问题。如果没装curl,就必须得用这个方式了。
$ctx = stream_context_create(array( 
'http' => array( 
'timeout' => 1 //设置一个超时时间,单位为秒 
) 
) 
); 
file_get_contents("https://3water.com/", 0, $ctx);

另外,据不完全测试,使用curl获取页面比用file_get_contents稳定的多。
PHP 相关文章推荐
基于PHP+MySQL的聊天室设计
Oct 09 PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
10条PHP编程习惯助你找工作
Sep 29 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
php中current、next与reset函数用法实例
Nov 17 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
Apr 02 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 PHP
laravel解决迁移文件一次删除创建字段报错的问题
Oct 24 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 PHP
学习使用curl采集curl使用方法
Jan 11 #PHP
PHP 日,周,月点击排行统计
Jan 11 #PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 #PHP
PHP求小于1000的所有水仙花数的代码
Jan 10 #PHP
php 带逗号千位符数字的处理方法
Jan 10 #PHP
php mysql 判断update之后是否更新了的方法
Jan 10 #PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 #PHP
You might like
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
js转html实体的方法
2016/09/27 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
Python实现从百度API获取天气的方法
2015/03/11 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
奥利奥广告词
2014/03/20 职场文书
合理化建议书
2015/02/04 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
宾馆客房管理制度
2015/08/06 职场文书