zoukankan      html  css  js  c++  java
  • file_get_contents微信头像等待时间过长的原因

    UPDATE 2016/05/13

    stackoverflow上的解决方法:http://stackoverflow.com/questions/3629504/php-file-get-contents-very-slow-when-using-full-url

    $context = stream_context_create(
        array('http' =>
            array(
          'method'=>,'get',//必须要加请求提交的方法,否则不成功
          'header'=>'Connection: close ') ) ); file_get_contents("http://www.something.com/somepage.html", false, $context);

    在工作时需要获取微信账户的头像

    $url = 'http://wx.qlogo.cn/mmopen/xu0fLo9waqKSTDO7j0kSO41O5Luq3LB6ozUvY4O7OsXUWNicB49fBs8nGYzoqcwGDARQZHpVuic4JSDngEVjVo10BoiaPd0iciaOb/0';
    $content = file_get_contents($url);
    file_put_contents('uploads/a.jpg', $content);

    但是,速度特别慢。达到30秒。后来在segmentfault上找到了相同疑问的提问帖

    原因以及解决方法如下:

    $url 这一行上面增加 ini_set('default_socket_timeout', 1); 设置一下 默认超时时间.

    你所请求的这个图片, 对方的服务器支持 Connection: keep-alive, 所以 PHP 在接收到数据之后, 维持了一段时间, 一直等到超时, 才返回, 所以 在设置 默认超时时间的情况下 会比较慢.

    你可以用同样的代码(不使用ini_set),获取这个URL http://sfault-avatar.b0.upaiyun.com/160/666/1606661144-55fe2a534b79f_huge256, 很快就回来了, 因为对方告诉了PHP, 在输出完数据接收完之后, 连接就可以关闭了.

  • 相关阅读:
    I
    D
    K
    G
    J
    Doom HDU
    Mountaineers Gym
    华南理工大学“三七互娱杯”程序设计竞赛(重现赛)( HRY and array 高精度除法模板)
    Corn Fields POJ
    linux如何安装缺失依赖
  • 原文地址:https://www.cnblogs.com/mysic/p/5421754.html
Copyright © 2011-2022 走看看