zoukankan      html  css  js  c++  java
  • stream_set_timeout (fread 造成了php程序timeout)

    最近在执行fread时候,php出现了 "Fatal error: Maximum execution time of 30 seconds

    fread() :从文件指针 handle 读取最多 length 个字节。

    handle:文件系统指针,是典型地由 fopen() 创建的 resource (资源)。

    length:最多读取 length 个字节。

    fread 一个远端文件的时候出现了超时,表示很头疼,但是最后用stream_set_timeout 暂时挂起了

    下面是我的代码

        stream_set_timeout($fp, 2);  // 2秒后为超时
        $_data = fread($fp, $this->maxlength);
        $info = stream_get_meta_data($fp);
        fclose($fp);
        if ($info['timed_out']) {
            print_r($info); die();
        } else {
            print_r($_data);
        }

    其中 $info 的信息如下:

    Array
    (
        [stream_type] => tcp_socket/ssl
        [mode] => r+
        [unread_bytes] => 0
        [seekable] => 
        [timed_out] => 1
        [blocked] => 1
        [eof] => 
    )
    
    // timed_out = 1 为超时   

    ps: fread($fp,50000) 请求其他机子都是正常的(同样的配置),唯独我的机子出现了这个问题,表示很尴尬!~ 会不断的寻找解决方案,不过如果有哪个大侠能有什么好的点子,跪求~

  • 相关阅读:
    Ynoi 杂题选做
    CSP-S2021 浙江 游记
    P6272 [湖北省队互测2014]没有人的算术
    P5206 [WC2019]数树
    P5405 [CTS2019]氪金手游
    LOJ6679 Unknow
    LOJ3040 「JOISC 2019 Day4」合并
    P6122 [NEERC2016]Mole Tunnels
    三维凸包
    三,四元环计数
  • 原文地址:https://www.cnblogs.com/wilburxu/p/6183154.html
Copyright © 2011-2022 走看看