比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+dbfile开发小型留言本
Oct 09 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
CodeIgniter模板引擎使用实例
Jul 15 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
php中array_fill函数的实例用法
Mar 02 PHP
php 解析非标准json、非规范json
Apr 01 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 代码优化之经典示例
2011/03/24 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
Python获取系统默认字符编码的方法
2015/06/04 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
公共事业管理本科生求职信
2013/10/07 职场文书
毕业生物理教师求职信
2013/10/17 职场文书
企业管理培训感言
2014/01/27 职场文书
我的祖国演讲稿
2014/05/04 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书