PHP valodā get_headers() kā trešo argumentu pieņem straumes kontekstu. PHP 8 versijā HTTP URL galveņu pārbaude var ietvert savu starpniekservera konfigurāciju:

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

Starpniekserveris ir TCP galapunkts HTTP straumes ietvaram. Aizstājiet tā viettura resursdatoru un portu ar neautentificētu kandidātu no HTTP starpniekserveru saraksta šai publiskajai HTTP pārbaudei. request_fulluri nodrošina pilnu galamērķa URI HTTP pieprasījuma rindā, kā to sagaida daudzi pārsūtošie starpniekserveri. Šis konteksts pieder šim izsaukumam; tas nemaina noklusējuma kontekstu, ko izmanto citas URL lasīšanas.

Neskatoties uz funkcijas nosaukumu, tās noklusējuma pieprasījuma metode ir GET. Nepārprotamā HEAD metode pieprasa serverim atbildes metadatus bez atbilstošā atbildes pamatteksta. Serveris var noraidīt HEAD vai apstrādāt to citādi, tāpēc veiksmīga galveņu pārbaude nav pierādījums, ka vēlāka lejupielāde izdosies.

Šeit pāradresāciju sekošana ir izslēgta, lai pārbaudītu pirmo atbildi. Tad Location galvene un pāradresācijas statuss ir noderīgi rezultāti, nevis norādījums iegūt citu URL. Ja pārbaudei jāseko pāradresācijām, apzināti mainiet šo politiku un ņemiet vērā papildu atbildes galvenes.

Arguments false saglabā indeksētu galveņu masīvu. Izmantojiet true, ja asociatīvā parsēšana ir noderīgāka.

Saistītie raksti