PHP get_headers: lähetä HTTP HEAD -pyyntö välityspalvelimen kautta
Välitä virran konteksti suoraan get_headers-funktiolle, valitse HEAD tarkoituksella ja päätä, seurataanko uudelleenohjauksia.
PHP:ssä get_headers() hyväksyy virran kontekstin kolmantena argumenttina. PHP 8:ssa HTTP-osoitteen otsikkotarkistus voi sisältää oman välityspalvelinasetuksensa:
$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');
}Välityspalvelin on HTTP-virtakääreen TCP-päätepiste. Korvaa sen paikkamerkki-isäntä ja -portti todentamattomalla ehdokkaalla HTTP-välityspalvelinluettelosta tätä julkista HTTP-tarkistusta varten. request_fulluri toimittaa täyden kohde-URI:n HTTP-pyyntörivillä, kuten monet edelleen välittävät palvelimet odottavat. Tämä konteksti kuuluu tähän kutsuun; se ei muuta oletuskontekstia, jota muut URL-luennot käyttävät.
Funktion nimestä huolimatta sen oletuspyyntömenetelmä on GET. Selkeä HEAD-menetelmä pyytää palvelimelta vastauksen metatiedot ilman vastaavaa vastausrunkoa. Palvelin voi hylätä HEAD-pyynnön tai käsitellä sen eri tavalla, joten onnistunut otsikkotarkistus ei todista, että myöhempi lataus onnistuu.
Tässä uudelleenohjausten seuraaminen on poistettu käytöstä ensimmäisen vastauksen tutkimiseksi. Location-otsake ja uudelleenohjauksen tila ovat silloin hyödyllisiä tuloksia eivätkä kehotus hakea toinen URL. Jos tarkistuksen pitäisi seurata uudelleenohjauksia, muuta tätä käytäntöä tarkoituksella ja ota huomioon ylimääräiset vastausotsakkeet.
Argumentti false säilyttää indeksoidun otsikkotaulukon. Käytä true, kun assosiatiivinen jäsennys on hyödyllisempi.