我使用PHP函数fread从用
打开的流中读取数据$fh=fopen('http://.....');
我用
设置流的超时socket_set_timeout($fh,10);
如果在fread执行期间发生超时,那么我可以知道这个吗?
$contents = fread($fh, 1024);
如果发生超时,那么$ contents是否等于空字符串或FALSE?怎么知道超时发生了?有办法吗?
答案 0 :(得分:1)
根据the doc page for that function:
当流超时时,' timed_out'返回的数组的键 by stream_get_meta_data()设置为TRUE,但没有错误/警告 生成。
因此没有生成错误/警告,但检查stream_get_meta_data
的输出会给你一个线索。
答案 1 :(得分:0)
fread()将返回''
(空字符串),与返回socket_read()
的{{1}}不同。