zoukankan      html  css  js  c++  java
  • PHP请求远程地址设置超时时间

    file_get_contents 请求超时设置

    $timeout = array(
        'http'=> array(
            'timeout'=>5//设置一个超时时间,单位为秒
        )
    );
    $ctx = stream_context_create($timeout);
    $text = file_get_contents("//www.baidu.com/",0, $ctx);

    fopen 请求超时设置

    $timeout = array(
        'http' => array(
            'timeout' => 5 //设置一个超时时间,单位为秒
        )
    );
    $ctx = stream_context_create($timeout);
    if ($fp = fopen("//www.baidu.com/", "r", false, $ctx))
    {
        while( $c = fread($fp, 8192))
         {
            echo $c;
        }
        fclose($fp);
    }    

    CURL请求超时设置

    CURL 是常用的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。

    curl_setopt($ch, opt) 可以设置一些超时的设置,主要包括:

    a 、CURLOPT_TIMEOUT 设置CURL允许执行的最长秒数。

    b、CURLOPT_TIMEOUT_MS 设置CURL允许执行的最长毫秒数。

    c、 CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。

    d、 CURLOPT_CONNECTTIMEOUT_MS 尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。

    e、 CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。

    /*CURLOPT_CONNECTTIMEOUT用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;
    CURLOPT_TIMEOUT 用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间。如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。
    CURLOPT_CONNECTTIMEOUT 可以设置为10秒,标识如果服务器10秒内没有响应,脚本就会断开连接;
    CURLOPT_TIMEOUT可以设置为100,如果MP3文件100秒内没有下载完成,脚本将会断开连接。*/
    
    // curl 通过图片地址下载图片 $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //1 为不输出在页面上 curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10); curl_setopt($ch,CURLOPT_TIMEOUT,30); $img_resource=curl_exec($ch); curl_close($ch); // 写入图片 file_put_contents($filename,$img_resource);
  • 相关阅读:
    HTML DOM 06 节点关系
    HTML DOM 05 事件(三)
    HTML DOM 05 事件(二)
    HTML DOM 05 事件(一)
    html DOM 04 样式
    html DOM 03 节点的属性
    html DOM 02 获取节点
    html DOM 01 节点概念
    JavaScript 29 计时器
    JavaScript 28 弹出框
  • 原文地址:https://www.cnblogs.com/xuey/p/9365453.html
Copyright © 2011-2022 走看看