(PECL pecl_http >= 0.1.0)
http_get — Perform GET request
$url
[, array $options
[, array &$info
]] )Performs an HTTP GET request on the supplied url.
请查阅完整的 request 选项组 列表。
成功时用字符串返回 HTTP 响应,失败时返回 FALSE
。
Example #1 A http_get() example
<?php
$response = http_get("http://www.example.com/", array("timeout"=>1), $info);
print_r($info);
?>
以上例程会输出:
array ( 'effective_url' => 'http://www.example.com/', 'response_code' => 302, 'connect_code' => 0, 'filetime' => -1, 'total_time' => 0.212348, 'namelookup_time' => 0.038296, 'connect_time' => 0.104144, 'pretransfer_time' => 0.104307, 'starttransfer_time' => 0.212077, 'redirect_time' => 0, 'redirect_count' => 0, 'size_upload' => 0, 'size_download' => 218, 'speed_download' => 1026, 'speed_upload' => 0, 'header_size' => 307, 'request_size' => 103, 'ssl_verifyresult' => 0, 'ssl_engines' => array ( 0 => 'dynamic', 1 => 'cswift', 2 => 'chil', 3 => 'atalla', 4 => 'nuron', 5 => 'ubsec', 6 => 'aep', 7 => 'sureware', 8 => '4758cca', ), 'content_length_download' => 218, 'content_length_upload' => 0, 'content_type' => 'text/html', 'httpauth_avail' => 0, 'proxyauth_avail' => 0, 'num_connects' => 1, 'os_errno' => 0, 'error' => '', )
php at dav7 dot net (2008-03-27 15:23:53)
[Moderators: This is not a bug report :P]
If you're using $data = http_get('http://...'); to get your message and you're getting weird numbers in it, PLEASE see tac at smokescreen dot org's message below!
Note that the body element http_parse_message returns is NOT the page's contents of the <body> tag! It's just the page content as seen by a browser, what wget would retrieve, what file_get_contents('http://...') would output, etc.
-dav7
tjerk dot meesters at muvee dot com (2006-12-13 20:16:24)
To change the request protocol use the option "protocol". The allowed values are:
* HTTP_VERSION_NONE (integer)
* HTTP_VERSION_1_0 (integer)
* HTTP_VERSION_1_1 (integer)
tac at smokescreen dot org (2006-11-10 06:41:17)
The hard work of parsing out the response is done in http_parse_message().
To replace the relatively weak file_get_contents(), using
$body = http_parse_message(http_get($url))->body;
The advantages to using http_get include getting back headers and controlling timeouts.