比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面向对象全攻略 (七) 继承性
Sep 30 PHP
PHP 面向对象实现代码
Nov 11 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
组合算法的PHP解答方法
Feb 04 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
php中in_array函数用法分析
Nov 15 PHP
Yii使用技巧大汇总
Dec 29 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
PHP XML和数组互相转换详解
Oct 26 PHP
PHP APP微信提现接口代码
Sep 30 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
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
python文件操作的简单方法总结
2019/11/07 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
自动化专业个人求职信范文
2013/11/29 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
年终考核评语
2014/01/19 职场文书
珍惜资源的建议书
2014/08/26 职场文书
学校开除通知书
2015/04/25 职场文书
公司安全管理制度范本
2015/08/05 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers