比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与javascript的两种交互方式
Oct 09 PHP
PHP集成FCK的函数代码
Sep 27 PHP
php实现jQuery扩展函数
Oct 30 PHP
PHP安全技术之 实现php基本安全
Sep 04 PHP
PHP实现微信发红包程序
Aug 24 PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
May 07 PHP
CI框架数据库查询缓存优化的方法
Nov 21 PHP
PHP 芝麻信用接入的注意事项
Dec 01 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
Jun 04 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 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防止sql注入简单分析
2015/03/18 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
详解python多线程之间的同步(一)
2019/04/03 Python
利用Python检测URL状态
2019/07/31 Python
Python的历史与优缺点整理
2020/05/26 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
竞选学习委员演讲稿
2014/04/28 职场文书
党员群众路线承诺书
2014/05/20 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
SpringBoot详解执行过程
2022/07/15 Java/Android