zoukankan      html  css  js  c++  java
  • php函数file_get_contents超时处理的方法(2013最新整理)

    一.增加超时的时间限制
    这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间。真正的修改 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);

    二、一次有延时的话那就多试几次
    有时候失败是因为网络等因素造成,没有解决办法,但是可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失败将返回 FALSE,所以可以下面这样编写代码:
    $cnt=0;
    while($cnt < 3 && ($str=@file_get_contents('http...'))===FALSE) $cnt++;
    以上方法对付超时已经OK了。
    有人发现了'method'=>”GET”,GET也可以设置成post,函数如下
    function Post($url, $post = null)
    {
    $context = array();

    if (is_array($post)) {
    ksort($post);

    $context['http'] = array (
    'timeout'=>60,
    'method' => 'POST',
    'content' => http_build_query($post, '', '&'),
    );
    }

    return file_get_contents($url, false, stream_context_create($context));
    }

    $data = array (
    'name' => 'test',
    'email' => 'test@gmail.com',
    'submit' => 'submit',
    );

    echo Post('http://www.jbxue.com', $data);
  • 相关阅读:
    单调队列和单调栈
    二叉搜索树(BST)
    高斯消元和高斯约旦消元 Gauss(-Jordan) Elimination
    扩展欧几里德算法
    基数排序
    智力题研究
    快速排序和快速选择
    快读模板
    C#知识点
    C#字段属性设置
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3116384.html
Copyright © 2011-2022 走看看