我使用PHP函數FREAD從與PHP FREAD抓流超時發生
$fh=fopen('http://.....');
開了一個流中讀取的數據我設置了流暫停時以
socket_set_timeout($fh,10);
如果超時發生在fread執行期間,我可以以某種方式知道這個?
$contents = fread($fh, 1024);
如果發生超時,那麼$ contents是否等於空字符串還是FALSE?如何知道超時發生?有沒有辦法?
我使用PHP函數FREAD從與PHP FREAD抓流超時發生
$fh=fopen('http://.....');
開了一個流中讀取的數據我設置了流暫停時以
socket_set_timeout($fh,10);
如果超時發生在fread執行期間,我可以以某種方式知道這個?
$contents = fread($fh, 1024);
如果發生超時,那麼$ contents是否等於空字符串還是FALSE?如何知道超時發生?有沒有辦法?
根據the doc page for that function:
當流超時,則陣列的「TIMED_OUT」鍵由stream_get_meta_data返回 ()被設置爲TRUE,雖然沒有錯誤/警告是產生 。
所以沒有錯誤/警告產生,但檢查從stream_get_meta_data
輸出將給你一個線索。
當發生超時時,fread()將返回''
(空字符串),而不是socket_read()
,它將返回false
。