比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 SQL防注入代码集合
Apr 25 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
php需登录的文件上传管理系统
Mar 21 PHP
php对接java现实加签验签的实例
Nov 25 PHP
php中请求url的五种方法总结
Jul 13 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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中通过fopen()函数访问远程文件示例
2014/11/18 PHP
php查询内存信息操作示例
2019/05/09 PHP
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
python字典排序实例详解
2015/05/20 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Python中常用的os操作汇总
2020/11/05 Python
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
电子邮箱格式怎么写
2014/01/12 职场文书
《日月潭》教学反思
2014/02/28 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
公司领导班子对照材料
2014/08/18 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
企业员工辞职信范文
2015/05/12 职场文书
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS