I PHP godtar get_headers() en strømkontekst som sitt tredje argument. På PHP 8 kan en header-sjekk for en HTTP-URL ha sin egen proxykonfigurasjon:

$context = stream_context_create([
    'http' => [
        'proxy' => 'tcp://proxy.example.net:8080',
        'request_fulluri' => true,
        'method' => 'HEAD',
        'follow_location' => 0,
        'timeout' => 10,
    ],
]);

$headers = get_headers('http://example.net/file.zip', false, $context);
if ($headers === false) {
    throw new RuntimeException('Header request failed');
}

Proxyen er et TCP-endepunkt for HTTP-strøm-wrapperen. Bytt ut plassholderen for vert og port med en uautentisert kandidat fra HTTP-proxylisten for denne offentlige HTTP-sjekken. request_fulluri leverer den fullstendige mål-URI-en i HTTP-forespørselslinjen, slik mange videresendende proxyer forventer. Denne konteksten tilhører dette kallet; den endrer ikke standardkonteksten som andre URL-lesinger bruker.

Til tross for navnet på funksjonen er standardforespørselsmetoden GET. Den eksplisitte HEAD-metoden ber serveren om svar-metadata uten den tilhørende svarteksten. En server kan avvise HEAD eller håndtere det annerledes, så en vellykket header-sjekk er ikke bevis for at en senere nedlasting lykkes.

Her er følging av omdirigeringer slått av for å inspisere den første responsen. En Location-header og en omdirigeringsstatus er da nyttige resultater i stedet for en instruks om å hente en annen URL. Hvis sjekken skal følge omdirigeringer, endre den policyen bevisst og ta høyde for de ekstra svarheaderne.

Argumentet false beholder en indeksert header-matrise. Bruk true når assosiativ parsing er nyttigere.

Relaterte artikler