PHP get_headers: pošlji zahtevo HTTP HEAD prek posredniškega strežnika
Posredujte kontekst toka neposredno v get_headers, zavestno izberite HEAD in odločite, ali naj se preusmeritve sledijo.
V PHP get_headers() sprejme kontekst toka kot tretji argument. V PHP 8 lahko preverjanje glav za naslov HTTP nosi lastno konfiguracijo posredniškega strežnika:
$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');
}Posredniški strežnik je končna točka TCP za ovoj toka HTTP. Zamenjajte nadomestnega gostitelja in vrata z neoverjenim kandidatom s seznama posredniških strežnikov HTTP za to javno preverjanje HTTP. request_fulluri zagotovi celoten URI cilja v vrstici zahteve HTTP, kot pričakujejo številni posredniki, ki posredujejo naprej. Ta kontekst pripada temu klicu; ne spreminja privzetega konteksta, ki ga uporabljajo druga branja URL.
Kljub imenu funkcije je privzeta metoda zahteve GET. Izrecna metoda HEAD od strežnika zahteva metapodatke odgovora brez ustreznega telesa odgovora. Strežnik lahko HEAD zavrne ali ga obravnava drugače, zato uspešno preverjanje glav ni dokaz, da bo poznejši prenos uspel.
Tu je sledenje preusmeritvam izklopljeno, da se pregleda prvi odgovor. Glava Location in status preusmeritve sta takrat koristna rezultata, ne pa navodilo za pridobitev drugega naslova URL. Če naj preverjanje sledi preusmeritvam, to politiko zavestno spremenite in upoštevajte dodatne glave odgovora.
Argument false ohrani indeksirano polje glav. Uporabite true, ko je asociativno razčlenjevanje bolj uporabno.