©
本文档使用
php中文网手册 发布
(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 选项组 列表。
url URL
options request 选项组
info Will be filled with request/response information
成功时用字符串返回 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' => '',
) [#1] 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
[#2] 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)
[#3] 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.