Como obter todos os headers http numa requisição ao servidor apache?

Existem duas funções, em php, que podemos usar para este efeito (apache_request_headers(), getallheaders() ). O resultado obtido é o mesmo,  no entanto, é necessário ter em atenção porque podem existir versões do php em que uma, ou a outra, não funcionem.

Função: apache_request_headers()
.

<?php
$headers = apache_request_headers();
foreach ($headers as $nome => $valor)
{
      echo ("$nome: $valor <br />");
}
?>

Função: getallheaders()

<?php
$headers = getallheaders();
foreach ($headers as $nome => $valor) 
{
    echo (<br />$nome: $valor");
}
?>

Se as funções acima não existirem podemos sempre socorrermo-nos das variáveis globais do ambiente.

$headers = '';
foreach ($_SERVER as $nome => $valor) 
{ 
   if (substr($nome, 0, 5) == 'HTTP_') 
   { 
       $headers[str_replace(' ', '-',               ucwords(strtolower(str_replace('_', ' ',    substr($nome, 5)))))] = $valor; 
   } 
}
foreach ($headers as $nome => $valor) 
{
    echo ("<br />$nome: $valor");
} 
?>;

Deixar uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *