HTTP context options

Från Wiki.linux.se
(Omdirigerad från HTTP-kontextalternativ)
Hoppa till navigering Hoppa till sök

HTTP-kontextalternativ

HTTP-kontextalternativ — Lista över HTTP-kontextalternativ

Beskrivning

Kontextalternativ för http:// och https:// transporter.

Alternativ

method string
GET, POST, eller någon annan HTTP-metod som stöds av den fjärrservern.

Standardvärdet är GET.

header array eller string
Ytterligare headers som ska skickas under förfrågan. Värden i detta alternativ kommer att åsidosätta andra värden (som User-agent:, Host:, och Authentication:), även när du följer Location: omdirigeringar. Därför rekommenderas det inte att ange en Host: header om follow_location är aktiverat.
user_agent string
Värde att skicka med User-Agent: header. Detta värde används endast om user-agent inte specificeras i header-kontaktalternativet ovan.

Som standard används user_agent-inställningen från php.ini.

content string
Ytterligare data som ska skickas efter headers. Används vanligtvis med POST- eller PUT-förfrågningar.
proxy string
URI som anger adressen till proxyservern (t.ex. tcp://proxy.example.com:5100).
request_fulluri bool
När denna är satt till true kommer hela URI att användas när förfrågan konstrueras (t.ex. GET http://www.example.com/path/to/file.html HTTP/1.0). Även om detta är ett icke-standardiserat förfrågningsformat kräver vissa proxyservrar det.

Standardvärdet är false.

follow_location int
Följ Location-header omdirigeringar. Sätt till 0 för att inaktivera.

Standardvärdet är 1.

max_redirects int
Maximalt antal omdirigeringar att följa. Värde 1 eller mindre innebär att inga omdirigeringar följs.

Standardvärdet är 20.

protocol_version float
HTTP-protokollversion.

Standardvärdet är 1.1 från och med PHP 8.0.0; tidigare var standardvärdet 1.0.

timeout float
Läs timeout i sekunder, specificerad som en float (t.ex. 10.5).

Som standard används default_socket_timeout-inställningen från php.ini.

ignore_errors bool
Hämta innehållet även vid felstatuskoder.

Standardvärdet är false.

Exempel

Exempel #1 Hämta en sida och skicka POST-data

<?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);

?>

Exempel #2 Ignorera omdirigeringar men hämta headers och innehåll

<?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);

// Header-information samt metadata
// om strömmen
var_dump(stream_get_meta_data($stream));

// Faktiskt data vid $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Noter

Not
Underliggande socket-kontaktalternativ
Ytterligare kontextalternativ kan stödjas av den underliggande transporten. För http:// streams, se kontextalternativ för tcp:// transporten. För https:// streams, se kontextalternativ för ssl:// transporten.
Not
HTTP statusrad
När denna stream-wrapper följer en omdirigering, kanske wrapper_data som returneras av stream_get_meta_data() inte nödvändigtvis innehåller HTTP-statusraden som faktiskt gäller för innehållsdatan vid index 0.
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',
    ...

Den första förfrågan returnerade en 301 (permanent omdirigering), så stream-wrappern följde automatiskt omdirigeringen för att få ett 200-svar (index = 4).

Se även

Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/context.http.php
PHP
Språkreferens
Kontextalternativ och parametrar


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.