U PHP-u get_headers() prihvaća kontekst toka kao treći argument. Na PHP 8 provjera zaglavlja za HTTP URL može nositi vlastitu konfiguraciju proxyja:

$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 TCP završna točka za HTTP stream wrapper. Zamijenite njegov rezervirani host i port neautentificiranim kandidatom s popisa HTTP proxyja za ovu javnu HTTP provjeru. request_fulluri dostavlja puni URI odredišta u retku HTTP zahtjeva, kako očekuju mnogi proxyji koji prosljeđuju. Ovaj kontekst pripada ovom pozivu; ne mijenja zadani kontekst koji koriste druga čitanja URL-a.

Unatoč imenu funkcije, njezina zadana metoda zahtjeva je GET. Eksplicitna metoda HEAD traži od poslužitelja metapodatke odgovora bez pripadajućeg tijela odgovora. Poslužitelj može odbiti HEAD ili ga obraditi drukčije, pa uspješna provjera zaglavlja nije dokaz da će kasnije preuzimanje uspjeti.

Ovdje je praćenje preusmjeravanja isključeno radi pregleda prvog odgovora. Zaglavlje Location i status preusmjeravanja tada su korisni rezultati, a ne uputa za dohvat drugog URL-a. Ako provjera treba slijediti preusmjeravanja, svjesno promijenite tu politiku i uzmite u obzir dodatna zaglavlja odgovora.

Argument false zadržava indeksirano polje zaglavlja. Upotrijebite true kada je asocijativno parsiranje korisnije.

Povezani članci