PHP get_headers: enviar una sol·licitud HTTP HEAD a través d'un proxy
Passa un context de flux directament a get_headers, tria HEAD deliberadament i decideix si vols seguir les redireccions.
A PHP, get_headers() accepta un context de flux com a tercer argument. A PHP 8, una comprovació de capçaleres per a una URL HTTP pot portar la seva pròpia configuració de proxy:
$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');
}El proxy és un punt final TCP per a l'embolcall de flux HTTP. Substituïu-ne l'amfitrió i el port d'exemple per un candidat sense autenticació de la llista de proxys HTTP per a aquesta comprovació HTTP pública. request_fulluri proporciona l'URI complet de destinació a la línia de sol·licitud HTTP, tal com esperen molts proxys d'avançada. Aquest context pertany a aquesta crida; no canvia el context per defecte que fan servir altres lectures d'URL.
Malgrat el nom de la funció, el seu mètode de sol·licitud per defecte és GET. El mètode HEAD explícit demana al servidor metadades de resposta sense el cos de resposta corresponent. Un servidor pot rebutjar HEAD o tractar-lo de manera diferent, així que una comprovació de capçaleres correcta no demostra que una descàrrega posterior tindrà èxit.
Aquí, el seguiment de redireccions està desactivat per inspeccionar la primera resposta. Una capçalera Location i un estat de redirecció són llavors resultats útils en lloc d'una instrucció per obtenir una altra URL. Si la comprovació ha de seguir redireccions, canvieu aquesta política deliberadament i tingueu en compte les capçaleres de resposta addicionals.
L'argument false manté una matriu de capçaleres indexada. Feu servir true quan l'anàlisi associatiu sigui més útil.