比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 相关文章推荐
Ajax PHP 边学边练 之三 数据库
Nov 26 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
PHP中使用hidef扩展代替define提高性能
Apr 09 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 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/06/13 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
js创建对象的方式总结
2015/01/10 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
Python去掉字符串中空格的方法
2014/03/11 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
Python操作Excel的学习笔记
2021/02/18 Python
工程质量承诺书范文
2014/03/27 职场文书
安全环保演讲稿
2014/08/28 职场文书
要账委托书范本
2014/09/15 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
离婚协议书格式
2015/01/26 职场文书
党员年终个人总结
2015/02/14 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书
工程主管竞聘书
2015/09/15 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python