程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> stream_set_timeout (fread 造成了php程序timeout),streamsettimeout

stream_set_timeout (fread 造成了php程序timeout),streamsettimeout

編輯:關於PHP編程

stream_set_timeout (fread 造成了php程序timeout),streamsettimeout


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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved