2014-07-23 52 views
0

我使用PHP函數FREAD從與PHP FREAD抓流超時發生

$fh=fopen('http://.....'); 

開了一個流中讀取的數據我設置了流暫停時以

socket_set_timeout($fh,10); 

如果超時發生在fread執行期間,我可以以某種方式知道這個?

$contents = fread($fh, 1024); 

如果發生超時,那麼$ contents是否等於空字符串還是FALSE?如何知道超時發生?有沒有辦法?

回答

1

根據the doc page for that function

當流超時,則陣列的「TIMED_OUT」鍵由stream_get_meta_data返回 ()被設置爲TRUE,雖然沒有錯誤/警告是產生 。

所以沒有錯誤/警告產生,但檢查從stream_get_meta_data輸出將給你一個線索。

0

當發生超時時,fread()將返回''(空字符串),而不是socket_read(),它將返回false