HTTP-Kontextoptionen — Liste der HTTP-Kontextoptionen
Kontextoptionen für die Transportprotokolle http://
und
https://
.
Beispiel #1 Abrufen einer Seite mit Übermittlung von POST-Daten
<?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);
?>
Beispiel #2 Weiterleitungen ignorieren, aber Kopfzeilen und Inhalt abrufen
<?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);
// die Header-Informationen sowie die Metadaten über den Stream
var_dump(stream_get_meta_data($stream));
// die eigentlichen Daten von $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>
Hinweis: Kontextoptionen für den zugrundeliegenden Socket-Stream
Vom zugrundeliegenden Transport können zusätzliche Kontextoptionen unterstützt werden. Fürhttp://
-Streams, siehe Kontextoptionen für das Transportprotokolltcp://
. Fürhttps://
Streams, siehe Kontextoptionen für das Transportprotokollssl://
.
Hinweis: HTTP-Statuszeile
Wenn dieser Stream-Wrapper einer Weiterleitung (Redirect) folgt, ist der Inhalt von Index0
in den von stream_get_meta_data() zurückgegebenenwrapper_data
nicht unbedingt die HTTP-Statuszeile für diesen Inhalt.Die erste Anfrage lieferte einearray ( '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', ...301
(permanente Weiterleitung), sodass der Stream-Wrapper automatisch der Weiterleitung folgte, bei der er eine200
-Antwort erhielt (index =4
).