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

yipeiwu_com5年前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++;

相关文章

分享php邮件管理器源码

分享php邮件管理器源码

本文为大家提供了php邮件管理器源码,希望大家喜欢。 1、需求分析 管理员应该能够建立和修改邮件内容。 管理员应该能够将文本或HTML格式的新闻信件发送给一个列表中的所有订阅者。 用户应...

深入php list()函数的详解

list()( PHP 4中, PHP 5中) list-指定变量,好象他们是一个数组描述void list ( mixed $varname [, mixed $... ] )像阵列(...

晋城吧对DiscuzX进行的前端优化要点

最近,康盛的DX版本基本确定,至少短期内不会大变了,因此,我对晋城吧的整站进行了前端优化,把自己 所做的操作记录下来,一是有个记录,防止忘掉,二是和网上的朋友们共享下自己的心得。 前端...

扩展你的 PHP 之入门篇

扩展你的 PHP 之入门篇

扩展你的php 扩展你的php 扩展的3种方式 extension dll方式的扩展 小结   首先注意,以下所有的一切皆在 win 下进行,使用的工具的 VC++6.0。 扩展...

DedeCMS 核心类TypeLink.class.php摘要笔记

注:'//+' 表示为本人另外加上的注释 Class TypeLink { var $typeDir; var $dsql; var $TypeID; //+ 类别ID var $bas...