PHP file_get_contents 函数超时的几种解决方法_php技巧

这里就简单介绍两种:
一、增加超时的时间限制
这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间。
我一开始以为set_time_limit也能影响到file_get_contents,后来经测试,是无效的。真正的修改file_get_contents延时可以用resource $context的timeout参数:

复制代码 代码如下:

$opts = array(
‘http'=>array(
‘method'=>”GET”,
‘timeout'=>60,
)
);
$context = stream_context_create($opts);
$html =file_get_contents('http://www.example.com', false, $context);
fpassthru($fp);

二、一次有延时的话那就多试几次
有时候失败是因为网络等因素造成,没有解决办法,但是可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失败将返回 FALSE,所以可以下面这样编写代码:

复制代码 代码如下:

$cnt=0;
while($cnt < 3 && ($str=@file_get_contents('http…'))===FALSE) $cnt++;

时间: 2025-01-20 09:55:41

PHP file_get_contents 函数超时的几种解决方法_php技巧的相关文章

php提示undefined index的几种解决方法_php技巧

平时用$_post[''],$_get['']获取表单中参数时会出现Notice: Undefined index: --------: 我们经常接收表单POST过来的数据时报Undefined index错误,如下: $act=$_POST['action']; 用以上代码总是提示 Notice: Undefined index: act in D:\test\post.php on line 20 另外,有时还会出现 Notice: Undefined variable: Submit ..

PHP中file_exists函数不支持中文名的解决方法_php技巧

一般来说PHP中常使用file_exists()判断某个文件或者文件夹是否存在,如果存在则返回true,否则返回false.但是该函数在网页使用UTF8编码的情况下,对于中文的文件名或者文件夹名不能返回正确值,始终返回false.经测试之后得出解决方法,分析造成这一情况的原因应该是编码不同而导致的PHP不能正确判断. 下面这段代码是不能够返回正确值的代码,无论文件是否在都返回不在: <?php; $file="/attachment/21/0/中文.rar"; $newfile

PHP与MySQL开发中页面出现乱码的一种解决方法_php技巧

一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的"天书",其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存.要解决上述乱码问题,首先需要知道开发中哪些环节涉及到了编码: 1.文件编码:指的是页面文件(.html,.php等)本身是以何种编码来保存的.记事本和Dreamweaver在打开页面时候会自动识别文件编码因而不太会出问题.而ZendStud

phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法_php技巧

解决办法有两种:(建议用第二种) 1.配置phpmyadmin下的config.inc.php  将cookie改为http 复制代码 代码如下: vi /usr/share/phpmyadmin/config.inc.php  [...]  /* Authentication type */  $cfg['Servers'][$i]['auth_type'] = 'cookie'; [...] 再打开浏览器输入管理地址,这时会弹出登录窗口,输入用户名及密码及可. 不过很不习惯,而且在进入管理界

php 生成唯一id的几种解决方法_php技巧

网上查了下,有很多的方法 1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数". 下面方法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872 复制代码 代

PHP删除HTMl标签的三种解决方法_php技巧

方法1:直接取出想要取出的标记 复制代码 代码如下: <?php    //取出br标记    function strip($str){$str=str_replace("<br>","",$str);//$str=htmlspecialchars($str);return strip_tags($str);}?> 方法2.PHP 中有个 strip_tags 函数可以方便地去除 HTML 标签.echo strip_tags("

PHP 获取远程文件大小的3种解决方法_php技巧

1.使用file_get_contents() 复制代码 代码如下: <?php$file = file_get_contents($url);echo strlen($file);?> 2. 使用get_headers() 复制代码 代码如下: <?php$header_array = get_headers($url, true);$size = $header_array['Content-Length'];echo $size;?> PS:需要打开allow_url_fop

PHP is_subclass_of函数的一个BUG和解决方法_php技巧

is_subclass_of的作用: 复制代码 代码如下: bool is_subclass_of ( object object, string class_name ) 如果对象 object 所属类是类 class_name 的子类,则返回 TRUE,否则返回 FALSE.注: 自 PHP 5.0.3 起也可以用一个字符串来指定 object 参数(类名). 使用例子: 复制代码 代码如下: #判断$className是否是$type的子类is_subclass_of($className

php中使用addslashes函数报错问题的解决方法_php技巧

大家看下面的代码,能发现错误在哪里吗? 复制代码 代码如下: <?phpecho function_exists('addcslashes');//检测是否存在该函数echo get_magic_quotes_gpc().'<br/>';//检测是否开启自动转义echo PHP_VERSION.'<br/>';//php版本信息echo addcslashes("Who's John Adams?");echo '<br/>';$str = &