比file_get_contents稳定的curl_get_contents分享_php技巧

分享一个实际在用的函数:

复制代码 代码如下:

/*比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稳定的多。

时间: 2024-11-08 19:47:29

比file_get_contents稳定的curl_get_contents分享_php技巧的相关文章

PHP中file_get_contents高級用法实例_php技巧

本文实例讲述了PHP中file_get_contents高级用法,分享给大家供大家参考.具体分析如下: 首先解决file_get_contents的超时问题,在超时返回错误后就象js中的settimeout那样进行一次尝试,错误超过3次或者5次后就确认为无法连线伺服器而彻底放弃. 这裡就简单介绍两种解决方法: 一.增加超时的时间限制 注意:set_time_limit只是设定你的PHP程式的超时时间,而不是file_get_contents函数读取URL的超时时间. 我一开始以为set_time

PHP版QQ互联OAuth示例代码分享_php技巧

由于国内QQ用户的普遍性,所以现在各大网站都尽可能的提供QQ登陆口,下面我们来看看php版,给大家参考下 /** * QQ互联 oauth * @author dyllen * */ class Oauth { //取Authorization Code Url const PC_CODE_URL = 'https://graph.qq.com/oauth2.0/authorize'; //取Access Token Url const PC_ACCESS_TOKEN_URL = 'https:

php采用file_get_contents代替使用curl实例_php技巧

本文实例讲述了php采用file_get_contents代替使用curl的方法,分享给大家供大家参考.具体实现方法如下: file_get_contents代替使用curl其实不多见了,但有时你碰到服务器不支持curl时我们可以使用file_get_contents代替使用curl,下面看个例子. 当用尽一切办法发现 服务器真的无法使用curl时.或者curl不支持https时.curl https 出现502时.你又不想重装网站环境的时候,你就改用file_get_contents 代替吧.

非常经典的PHP文件上传类分享_php技巧

文件上传是项目开发中比较常见的功能,但文件上传的过程比较繁琐,只要是有文件上传的地方就需要编写这些复杂的代码.为了能在每次开发中降低功能的编写难度,也为了能节省开发时间,通常我们都会将这些反复使用的一段代码封装到一个类中. <?php /** +----------------------------------------------------------------------------- * 文件上传类 +----------------------------------------

php处理单文件、多文件上传代码分享_php技巧

php处理  单文件.多文件上传实例代码,供大家参考,具体内容如下  后台处理文件submit_form_process.php  <?php /****************************************************************************** 参数说明: $max_file_size : 上传文件大小限制, 单位BYTE $destination_folder : 上传文件路径 $watermark : 是否附加水印(1为加水印,其他为

PHP中使用Memache作为进程锁的操作类分享_php技巧

<?php // 使用Memache 作为进程锁 class lock_processlock{ // key 的前缀 protected $sLockKeyPre; // 重试间隔 protected $iLockRetryInterval; //重试次数 protected $iLockRetryCount; //锁的过期时间 protected $iLockCacheTimeout; // 锁过期后的回调函数 protected $onLockTimeoutFunc; // memache

php搜索文件程序分享_php技巧

对于本地,我们可以利用windows自带的查找去进行查找,但是对于线上的话,如查找ftp空间里面文件,本程序是很有用的. php文件查找器源码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>php版文件查找(file search)</title> </head&g

提高php运行速度的一些小技巧分享_php技巧

1.代码优化 代码优化不仅仅是写出干净和清晰的代码,而是对代码进行一定的简化.可以使用Zend Optimizer来自动帮助完成这些繁杂的工作.Zend Optimizer可以从Zend Technologies的网站http://www.zend.com/免费得到,但必须同意它的许可约定,因为它不是以GPL方式发行的.它的原理很简单,即通过检测Zend引擎产生的中间代码,并对它进行优化,从而获得更高的执行速度. 在使用了Zend Optimizer后,复杂的PHP源程序的执行效率马上会得到显著

一个经典实用的PHP图像处理类分享_php技巧

本图像处理类可以完成对图片的缩放.加水印和裁剪的功能,支持多种图片类型的处理,缩放时进行优化等. <?php /** file: image.class.php 类名为Image 图像处理类,可以完成对各种类型的图像进行缩放.加图片水印和剪裁的操作. */ class Image { /* 图片保存的路径 */ private $path; /** * 实例图像对象时传递图像的一个路径,默认值是当前目录 * @param string $path 可以指定处理图片的路径 */ function