比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 相关文章推荐
一个程序下载的管理程序(四)
Oct 09 PHP
PHP 文件上传源码分析(RFC1867)
Oct 30 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
ThinkPHP使用心得分享-分页类Page的用法
May 15 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
Symfony2创建页面实例详解
Mar 18 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
django接入新浪微博OAuth的方法
2015/06/29 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
Python常用特殊方法实例总结
2019/03/22 Python
NumPy 数组使用大全
2019/04/25 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
爱情保证书
2015/01/17 职场文书
2015年司法所工作总结
2015/04/27 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
贷款工资证明范本
2015/06/12 职场文书
人力资源部工作计划
2019/05/14 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
Python图片处理之图片裁剪教程
2021/05/27 Python
深入理解go slice结构
2021/09/15 Golang