Opciones de contexto de HTTP — Lista de opciones de contexto de HTTP
Opciones de contexto para los transports http:// y https://.
Versión | Descripción |
---|---|
5.3.4 |
Añadido follow_location .
|
5.3.0 |
La opción protocol_version soporta decodificación de
transferencias fragmentadas en caso de valer 1.1.
|
5.2.10 |
Añadido ignore_errors .
|
5.2.10 |
El parámetro header puede ahora ser un array de índices numéricos.
|
5.2.1 |
Añadido timeout .
|
5.1.0 | Añadido soporte para HTTPS mediante proxies HTTP. |
5.1.0 |
Añadido max_redirects .
|
5.1.0 |
Añadido protocol_version .
|
Ejemplo #1 Captura una página y envía datos POST
<?php
$postdata = http_build_query(
array(
'var1' => 'contenido',
'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);
?>
Ejemplo #2 Ignora las redirecciones per captura las cabeceras y el contenido
<?php
$url = "http://www.example.org/header.php";
$opts = array('http' =>
array(
'method' => 'GET',
'max_redirects' => '0',
'ignore_errors' => '1'
)
);
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// información de cabeceras y meta datos
// sobre el flujo
var_dump(stream_get_meta_data($stream));
// datos reales en $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
Nota: Opciones de contexto del flujo de socket subyacente
Hay soporte para opciones de contexto adicionales en el transporte subyacente Para flujos http://, deben consultarse las opciones de contexto del transporte tcp://. Para flujos https://, deben consultarse las opciones de contexto del transporte ssl://.
Nota: Línea de estado HTTP
Cuando esta envultura sigue una redirección, el wrapper_data devuelto por stream_get_meta_data() no contiene necesariamente la línea de estado HTTP que realmente se aplica al contenido del índice 0.La primera petición devolvió un 301 (redirección permanente), de manera que la envoltura automáticamente sigue la redirección para obtener una respuesta con código 200 (índice = 4).array ( 'wrapper_data' => array ( 0 => 'HTTP/1.0 301 Moved Permantenly', 1 => 'Cache-Control: no-cache', 2 => 'Connection: close', 3 => 'Location: http://example.com/foo.jpg', 4 => 'HTTP/1.1 200 OK', ...