web-dev-qa-db-fra.com

Comment puis-je obtenir PHP pour afficher les en-têtes qu'il a reçus d'un navigateur?

Sont-ils tous stockés dans $_SERVER? Même sur mesure?

32
tehryan

Essaye ça

print_r ($ _ SERVEUR)

Il listera tout dans le tableau

37
Steven Mercatante

vous pouvez utiliser getallheaders() pour obtenir un tableau de tous les en-têtes HTTP envoyés.

$headers =  getallheaders();
foreach($headers as $key=>$val){
  echo $key . ': ' . $val . '<br>';
}
25
aphoe

Chaque champ d'en-tête de requête HTTP est dans $_SERVER (sauf Cookie) et la clé commence par HTTP_. Si vous utilisez Apache, vous pouvez également essayer Apache_request_headers .

21
Gumbo

Vous pouvez simplement utiliser Apache_request_headers() ou son alias getallheaders() .

Utilisation: echo json_encode(getallheaders());

Si la fonction ci-dessus n'existe pas (ancien PHP ou nginx), vous pouvez l'utiliser comme solution de rechange:

<?php 
if (!function_exists('getallheaders')){ 
    function getallheaders() { 
       $headers = ''; 
       foreach ($_SERVER as $name => $value) { 
            if (substr($name, 0, 5) == 'HTTP_') { 
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value; 
            } 
       } 
       return $headers; 
    } 
}
?>
7
Panos Kal.

Regardez la variable $ _ SERVER pour voir ce qu'elle contient. La page de manuel liée contient de nombreuses informations utiles, mais aussi simplement var_dump dessus pour voir ce qu'il contient réellement. Beaucoup d'entrées seront ou ne seront pas remplies, selon ce que le client décide de faire et les bizarreries de PHP. En regardant celui sur mon serveur local, il y a aussi une entrée $ _SERVER ["ALL_HTTP"] qui les répertorie toutes sous forme de chaîne, mais apparemment ce n'est pas standard, car il n'est pas répertorié sur la page de manuel.

6
davidtbernal

vous pouvez utiliser Apache_request_header (); peut-être vous aider.

$headers = Apache_request_headers();        
foreach ($headers as $header => $value) {
 echo "<pre>";
 echo "$header : $value";
 echo "</pre>";
}
0
hoggy kurnia