比file_get_contents稳定的curl_get_contents分享

 更新时间:2012年01月11日 21:47:21   作者:  
相信使用过file_get_contents函数的朋友都知道,当获取的$url访问不了时,会导致页面漫长的等待,甚至还能导致PHP进程占用CPU达100%,因此这个函数就诞生了
分享一个实际在用的函数:
复制代码 代码如下:

/*比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://www.jb51.net');

相信使用过file_get_contents函数的朋友都知道,当获取的$url访问不了时,会导致页面漫长的等待,甚至还能导致PHP进程占用CPU达100%,因此这个函数就诞生了。curl的一些常识介绍
保留原file_get_contents函数的原因是当读取本地文件时,用原生的file_get_contents显然更合适。
另来自张宴的file_get_contnets的优化,具体可看:https://www.jb51.net/article/28030.htm
同样是设置超时时间来解决这个问题。如果没装curl,就必须得用这个方式了。
复制代码 代码如下:

$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1 //设置一个超时时间,单位为秒
)
)
);
file_get_contents("https://www.jb51.net/", 0, $ctx);

另外,据不完全测试,使用curl获取页面比用file_get_contents稳定的多。

相关文章

  • thinkphp在模型中自动完成session赋值示例代码

    thinkphp在模型中自动完成session赋值示例代码

    今天在开发中遇到自动完成中需要获取session值然后自动赋值的功能,还不错,下面与大家分享下代码
    2014-09-09
  • php获取文章上一页与下一页的方法

    php获取文章上一页与下一页的方法

    这篇文章主要介绍了php获取文章上一页与下一页的方法,实例分析了获取当前文章上一页与下一页文章的方法,是进行PHP项目开发中非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • 探讨PHP JSON中文乱码的解决方法详解

    探讨PHP JSON中文乱码的解决方法详解

    本篇文章是对PHP中JSON中文乱码的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php获取当前月与上个月月初及月末时间戳的方法

    php获取当前月与上个月月初及月末时间戳的方法

    这篇文章主要介绍了php获取当前月与上个月月初及月末时间戳的方法,涉及php针对日期与时间相关判断与操作技巧,需要的朋友可以参考下
    2016-12-12
  • 使用PHP8提升开发效率的技巧分享

    使用PHP8提升开发效率的技巧分享

    PHP 8 是 PHP 语言的一个重要版本,引入了许多新特性和改进,旨在提高开发效率,本文将探讨一下PHP 8如何通过各种功能和语言改进来促进开发效率的提升,感兴趣的小伙伴可以了解下
    2023-11-11
  • 几种有用的变型 PHP中循环语句的用法介绍

    几种有用的变型 PHP中循环语句的用法介绍

    for语句可以说是PHP(同时也是多种语言)的循环控制部份最基本的一个语句了,for语句的执行规律和基础用法在这里就不多说,可以参见PHP手册for语句部分
    2012-01-01
  • 递归删除一个节点以及该节点下的所有节点示例

    递归删除一个节点以及该节点下的所有节点示例

    一段递归删除一个部门以及它的所有子部门的一段代码。仅供大家参考和自己以后备用
    2014-03-03
  • php中socket通信机制实例详解

    php中socket通信机制实例详解

    这篇文章主要介绍了php中socket通信机制,讲述了socket通信机制的原理,并以实例形式较为详细的分析了socket通信机制的用法,需要的朋友可以参考下
    2015-01-01
  • PHP实现动态添加XML中数据的方法

    PHP实现动态添加XML中数据的方法

    这篇文章主要介绍了PHP实现动态添加XML中数据的方法,结合实例形式分析了php操作xml格式数据类的定义及简单使用技巧,需要的朋友可以参考下
    2018-03-03
  • php结合curl实现多线程抓取

    php结合curl实现多线程抓取

    PHP利用 Curl可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,因此经常需要借助Curl Multi Functions 这个功能实现并发多线程的访问多个url地址以实现并发多线程抓取网页或者下载文件
    2015-07-07

最新评论