V PHP get_headers() přijímá kontext streamu jako třetí argument. V PHP 8 může kontrola hlaviček pro adresu HTTP nést vlastní konfiguraci proxy:

$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');
}

Proxy je koncový bod TCP pro obal streamu HTTP. Nahraďte zástupný hostitel a port neověřeným kandidátem ze seznamu HTTP proxy pro tuto veřejnou kontrolu HTTP. request_fulluri dodává úplné URI cíle v řádku požadavku HTTP, jak očekává mnoho dopředných proxy. Tento kontext patří tomuto volání; nemění výchozí kontext, který používají jiná čtení URL.

Navzdory názvu funkce je výchozí metodou požadavku GET. Explicitní metoda HEAD žádá server o metadata odpovědi bez odpovídajícího těla odpovědi. Server může HEAD odmítnout nebo jej zpracovat jinak, takže úspěšná kontrola hlaviček není důkazem, že pozdější stahování uspěje.

Zde je následování přesměrování vypnuto, aby bylo možné prohlédnout první odpověď. Hlavička Location a stav přesměrování jsou pak užitečné výsledky, nikoli pokyn k načtení jiné adresy URL. Pokud má kontrola následovat přesměrování, změňte tuto zásadu vědomě a počítejte s dalšími hlavičkami odpovědi.

Argument false zachovává indexované pole hlaviček. Použijte true, když je asociativní analýza užitečnější.

Související články