PHP fread catch流超时发生了

时间:2014-07-23 13:33:50

标签: php php-stream-wrappers

我使用PHP函数fread从用

打开的流中读取数据
$fh=fopen('http://.....');

我用

设置流的超时
socket_set_timeout($fh,10);

如果在fread执行期间发生超时,那么我可以知道这个吗?

$contents = fread($fh, 1024);

如果发生超时,那么$ contents是否等于空字符串或FALSE?怎么知道超时发生了?有办法吗?

2 个答案:

答案 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}}不同。