Posted by Al on 02/08/05 22:52
How can I detect that a remote server is hung up on transmitting a http page and
gracefully handle it?
The connect is made OK, all I want to do is to make certain that I receive the
data stream in a given amount of time. For example, if the remote server is
incredibly slow or hangs in the middle of transmitting the data.
e.g.
> $fp= fopen("http://www.anything.com/foo.html, 'rb');
> if(!fp) {do something different}
>
> stream_set_timeout($fp, 2);
>
> $status= stream_get_meta_data($fp);
>
> if($status[timed_out] {do something};
$status[timed_out] never shows anything but 0. I've tried it with a 4mb file
and the timeout = 1sec.
error reporting shows nothing. It's as if socket connections don't trigger
timeout errors, including the max_execution_time.
I've spent some time poking around the php manual and Googling and can't find
anything appropriate. One ref I found said there is no way to do this.
Anyone have a suggestion?
Al.....
[Back to original message]
|