0

我使用 PHP 函数 fread 从打开的流中读取数据

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

我设置了流的超时时间

socket_set_timeout($fh,10);

如果在 fread 执行期间发生超时,那么我能以某种方式知道这一点吗?

$contents = fread($fh, 1024);

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

4

2 回答 2

1

根据该功能的文档页面

当流超时时,stream_get_meta_data() 返回的数组的 'timed_out' 键设置为 TRUE,但不会生成错误/警告。

所以没有产生错误/警告,但检查输出stream_get_meta_data会给你一个线索。

于 2014-07-23T13:50:06.720 回答
0

当发生超时时, fread() 将返回''(空字符串),socket_read()这与返回不同false

于 2014-07-23T13:51:18.783 回答