PHP get_headers: HTTP HEAD kérés küldése proxyn keresztül
Adj át egy stream környezetet közvetlenül a get_headers-nek, válaszd szándékosan a HEAD-et, és döntsd el, kövesse-e az átirányításokat.
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.