比file_get_contents稳定的curl_get_contents分享

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

复制代码
$ctx = stream_context_create(array( 
'http' => array( 
'timeout' => 1 //设置一个超时时间,单位为秒 
) 
) 
); 
file_get_contents("http://www.jb51.net/", 0, $ctx); 
复制代码
另外,据不完全测试,使用curl获取页面比用file_get_contents稳定的多。
原文地址:http://www.jb51.net/article/29419.htm
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值