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) 請求其他機子都是正常的(同樣的配置),唯獨我的機子出現了這個問題,表示很尷尬!~ 會不斷的尋找解決方案,不過如果有哪個大俠能有什么好的點子,跪求~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM