Re: stream_set_timeout() stream_get_meta_data() etc...

From: Date: Tue, 08 Feb 2005 22:36:05 +0000
Subject: Re: stream_set_timeout() stream_get_meta_data() etc...
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-208301@lists.php.net to get a copy of this message
Darn, I left out an important function, the fread(). Code snip should be: $fp= fopen("http://www.anything.com/foo.html, 'rb'); if(!fp) {do something different} stream_set_timeout($fp, 2); $contents= fread($fp, 200000); $status= stream_get_meta_data($fp); if($status[timed_out] {do something}; It appears to me there is a basic logic problem. The script must get past the fread() function before it gets to the stream_get_meta_data($fp). But, it hangs up on fread() and the script times out. Al.... Al wrote:
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.....


« previous php.general (#208301) next »