http
HTTP context options
HTTP context option listing
ENTITY
Context options for http:// and https:// transports.
ENTITY
method string
GET, POST, or any other HTTP method supported by the remote server.
Defaults to GET.
header array or string
Additional headers to be sent during request. Values in this option will override other values (such as User-agent:, Host:, and Authentication:), even when following Location: redirects. Thus it is not recommended to set a Host: header, if follow_location is enabled.
String value should be Key: value pairs delimited by \r\n, e.g. "Content-Type: application/json\r\nConnection: close". Array value should be a list of Key: value pairs, e.g. ["Content-Type: application/json", "Connection: close"].
user_agent string
Value to send with User-Agent: header. This value will only be used if user-agent is not specified in the header context option above.
By default the user_agent ENTITY setting is used.
content string
Additional data to be sent after the headers. Typically used with POST or PUT requests.
proxy string
URI specifying address of proxy server (e.g. tcp://proxy.example.com:5100).
request_fulluri bool
When set to ENTITY, the entire URI will be used when constructing the request (e.g. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it.
Defaults to ENTITY.
follow_location int
Follow Location header redirects. Set to 0 to disable.
When this option is not set, redirects are only followed for the 300, 301, 302, 303, 307 and 308 response codes. Setting it to 1 is not equivalent: any response carrying a Location header is then followed, whatever its response code.
max_redirects int
The max number of redirects to follow. Value 1 or less means that no redirects are followed.
Defaults to 20.
protocol_version float
HTTP protocol version.
Defaults to 1.1 as of PHP 8.0.0; prior to that version the default was 1.0.
timeout float
Read timeout in seconds, specified by a float (e.g. 10.5).
By default the default_socket_timeout ENTITY setting is used.
ignore_errors bool
Fetch the content even on failure status codes.
Defaults to ENTITY.
uri_parser_class string or null
The class to use for parsing URIs. When ENTITY, the legacy behavior based on parse_url is used. Accepted values are Uri\Rfc3986\Uri (RFC 3986 compliant parser) and Uri\WhatWg\Url (WHATWG URL Standard parser). Custom userland implementations are not supported.
Defaults to ENTITY.
ENTITY
| ENTITY | ENTITY |
|---|---|
| 8.5.0 | The uri_parser_class option was added. |
ENTITY
Fetch a page and send POST data
<?php
$postdata = http_build_query(
[
'var1' => 'some content',
'var2' => 'doh',
]
);
$opts = [
'http' => [
'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);
?>
Ignore redirects but fetch headers and content
<?php
$url = "http://www.example.org/header.php";
$opts = [
'http' => [
'method' => 'GET',
'max_redirects' => '0',
'ignore_errors' => '1',
]
];
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// header information as well as meta data
// about the stream
var_dump(stream_get_meta_data($stream));
// actual data at $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
ENTITY
[!NOTE] Additional context options may be supported by the underlying transport For
http://streams, refer to context options for thetcp://transport. Forhttps://streams, refer to context options for thessl://transport.
[!NOTE] When this stream wrapper follows a redirect, the
wrapper_datareturned bystream_get_meta_datamight not necessarily contain the HTTP status line that actually applies to the content data at index0.array ( 'wrapper_data' => array ( 0 => 'HTTP/1.0 301 Moved Permanently', 1 => 'Cache-Control: no-cache', 2 => 'Connection: close', 3 => 'Location: http://example.com/foo.jpg', 4 => 'HTTP/1.1 200 OK', ...The first request returned a
301(permanent redirect), so the stream wrapper automatically followed the redirect to get a200response (index =4).
ENTITY
谢谢你的反馈!