比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 异常处理实现代码
Mar 10 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
php字符串截取的简单方法
Jul 04 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
PHP中header函数的用法及其注意事项详解
Jun 13 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
form表单传递数组数据、php脚本接收的实例
Feb 09 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 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 UTF8 文件的签名问题
2009/10/30 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
js中生成map对象的方法
2014/01/09 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
jquery获取节点名称
2015/04/26 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
JS实现的排列组合算法示例
2019/07/16 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
Python素数检测实例分析
2015/06/15 Python
Python中常见的数据类型小结
2015/08/29 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
用python实现百度翻译的示例代码
2018/03/09 Python
python pandas模块基础学习详解
2019/07/03 Python
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
加强机关作风建设心得体会
2014/10/22 职场文书
文员岗位职责范本
2015/04/16 职场文书
行政复议答复书
2015/07/01 职场文书
升学宴来宾致辞
2015/07/27 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android