当前位置:  编程技术>php

PHP file_get_contents超时处理的设置方法

    来源: 互联网  发布时间:2014-10-10

    本文导语:  从PHP5开始,file_get_content已支持context(php手册:5.0.0 Added the context support. ),从5.0开始,file_get_contents其实也可以POST数据。 在php中跨服务器提交数据时,通过set_time_limit设置超时是没有用的。 只有用context中的timeout时间来控制...

从PHP5开始,file_get_content已支持context(php手册:5.0.0 Added the context support. ),从5.0开始,file_get_contents其实也可以POST数据。

在php中跨服务器提交数据时,通过set_time_limit设置超时是没有用的。

只有用context中的timeout时间来控制。

比如在超时返回错误后,进行一次尝试,就象js中的 settimeout那样,对函数重新处理。错误超过3次或者5次后,我们就确实的认为无法连接服务器而彻底放弃。这,是一个好办法,应该值得推荐使用。

其实,不全是file_get_contents,只要支持context的都应该加上,避免超时浪费时间。
这样可以被支持的函数大致有:fsocketopen(该函数的最后一个参数。
好象比较推荐在读stream时,使用stream_time_out函数进行控制),fopen(也是从PHP5开始加入context支持),file(PHP5加入支持),curl(curl有自已的变量 CURLOPT_TIMEOUT)等 。

在使用file_get_contents函数时,经常会出现超时的情况,查看一下错误提示,看看是哪种错误,比较常见的是读取超时。

下面分享二种应对file_get_contents函数超时的解决方法。

一、增加超时的时间限制
注意: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'=>1,//单位秒 
   )  
);  
 
$cnt=0;  
while($cnt 60,   
            'method' => 'POST',   
            'content' => http_build_query( $post, '', '&' )  
         );  
      
    }  
    return file_get_contents ( $url, false, stream_context_create ( $context ) );  
}  
 
 $data = array (  
    'name' => 'test',  
    'email' => 'admin@admin.com',  
    'submit' => 'submit',  
);  
echo Post ( 'http://www.', $data ); 

如此便解决了超时控制又解决了Post传值。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php通过socket_bind()设置IP地址代码示例
  • 如何设置服务器, 使http://localhost/hello.php变成http://www.example.com/hello.php生效?
  • php会话(session)生命周期概念介绍及设置更改和回收
  • php设置中国时区的方法
  • php session 原理详解,用法介绍以及如何设置过期时间
  • 两种设置php载入页面时编码的方法
  • PHP如何设置页面最大执行时间
  • 设置php页面编码的两种方法示例介绍
  • php环境套包 dedeampz 伪静态设置示例
  • win7计划任务定时执行PHP脚本设置图解
  • PHP 修改时区设置的快速方法
  • linux系统运行php几分钟后出现假死情况请问需要设置什么地方?
  • php生成csv文件header设置参考
  • php本地时区设置方法
  • 设置php页面编码的二种方法
  • PHP开发框架kohana3.3.1在nginx下的伪静态设置例子
  • php与时区设置的那些事
  • php系统时区设置二种方法
  • php将session放入memcached的设置方法
  • php设置时区的解决方案
  • php设置允许大文件上传示例代码
  • 数据库 iis7站长之家
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3