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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.....

-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux