I would like to make decisions based on whether file_get_contents had a timeout or not.
Currently I only know from a timeout by reading php's console warning messages, which read like this:
Warning: file_get_contents(<url>): failed to open stream: Operation timed out in <sourcefile.php>
But I would like to know how to access the timeout information from within PHP code.
Sadly, file_get_contents() only returns an int $bytesLoaded on load success or int FALSE on failure, but no information whether a timeout has occured.
HTTP context options
HTTP context options — HTTP context option listing
Description
Context options for http:// and https:// transports.
Changelog
| Version | Description |
|---|---|
| 5.3.0 | The protocol_version supports chunked transfer decoding when set to 1.1. |
| 5.2.10 | Added ignore_errors . |
| 5.2.1 | Added timeout . |
| 5.2.10 | The header can now be an numerically indexed array. |
| 5.1.0 | Added HTTPS proxying through HTTP proxies. |
| 5.1.0 | Added max_redirects . |
| 5.1.0 | Added protocol_version . |
Examples
Example #1 Fetch a page and send POST data
<?php
$postdata = http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/submit.php', false, $context);
?>
Notes
Note: Underlying socket stream context options
Additional context options may be supported by the underlying transport For http:// streams, refer to context options for the tcp:// transport. For https:// streams, refer to context options for the ssl:// transport.
HTTP context options
Stefan Nowak
27-May-2009 07:05
27-May-2009 07:05
