A PHP-ban a get_headers() harmadik argumentumként egy stream környezetet fogad. PHP 8 alatt egy HTTP URL fejléc-ellenőrzése saját proxybeállítást hordozhat:

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

A proxy a HTTP stream burkoló TCP végpontja. Cserélje ki a helyőrző gazdagépet és portot egy nem hitelesített jelöltre a HTTP proxy listáról ehhez a nyilvános HTTP-ellenőrzéshez. A request_fulluri a teljes cél-URI-t adja meg a HTTP kérésorban, ahogyan sok továbbító proxy elvárja. Ez a környezet ehhez a híváshoz tartozik; nem változtatja meg a többi URL-olvasás által használt alapértelmezett környezetet.

A függvény neve ellenére az alapértelmezett kérési módszer a GET. A kifejezett HEAD módszer a válasz metaadatait kéri a szervertől a megfelelő választörzs nélkül. A szerver elutasíthatja a HEAD-et vagy másképp kezelheti, ezért egy sikeres fejléc-ellenőrzés nem bizonyítja, hogy egy későbbi letöltés sikeres lesz.

Itt az átirányítások követése ki van kapcsolva, hogy megvizsgáljuk az első választ. A Location fejléc és az átirányítási állapot ekkor hasznos eredmény, nem pedig utasítás egy másik URL letöltésére. Ha az ellenőrzésnek követnie kell az átirányításokat, változtassa meg ezt a szabályt szándékosan, és számoljon a további válaszfejlécekkel.

A false argumentum indexelt fejléc-tömböt tart meg. Használja a true értéket, ha az asszociatív feldolgozás hasznosabb.

Kapcsolódó cikkek