比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 相关文章推荐
phpmyadmin操作流程
Oct 09 PHP
使用PHP批量生成随机用户名
Jul 10 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php max_execution_time执行时间问题
Jul 17 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
深入PHP curl参数的详解
Jun 17 PHP
详解PHP中array_rand函数的使用方法
Sep 11 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
实例讲解php将字符串输出到HTML
Jan 27 PHP
PHP扩展mcrypt实现的AES加密功能示例
Jan 29 PHP
PHP number_format函数原理及实例解析
Jul 14 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 Undefined index的问题
2009/06/01 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
java script编程起步(第三课)
2007/01/10 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
深入理解python函数递归和生成器
2016/06/06 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
上班离岗检讨书
2014/01/27 职场文书
2014小学年度工作总结
2014/12/20 职场文书
护士个人年度总结范文
2015/02/13 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
一文搞懂python异常处理、模块与包
2021/06/26 Python
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记