PHP Unconference Europe 2015

getallheaders

(PHP 4, PHP 5)

getallheadersRécupère tous les en-têtes de la requête HTTP

Description

array getallheaders ( void )

Récupère tous les en-têtes de la requête HTTP.

Cette fonction est un alias de la fonction apache_request_headers(). Lisez la documentation de apache_request_headers() pour plus d'informations sur le fonctionnement de cette fonction.

Valeurs de retour

Un tableau associatif avec tous les en-têtes HTTP de la requête courante ou FALSE en cas d'échec.

Historique

Version Description
5.5.7 Cette fonction devient disponible pour le serveur CLI.
5.4.0 Cette fonction devient disponible pour FastCGI. Précédemment, elle n'était disponible que lorsque PHP était installé comme module Apache.
4.3.3

Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

Exemples

Exemple #1 Exemple avec getallheaders()

<?php

foreach (getallheaders() as $name => $value) {
    echo 
"$name$value\n";
}

?>

Voir aussi

add a note add a note

User Contributed Notes 4 notes

up
16
joyview at gmail dot com
6 years ago
it could be useful if you using nginx instead of apache

<?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;
    }
}
?>
up
3
acidfilez at gmail dot com
3 years ago
dont forget to add the content_type and content_lenght if your are uploading file:

<?php
 
function emu_getallheaders() {
        foreach (
$_SERVER as $name => $value)
       {
           if (
substr($name, 0, 5) == 'HTTP_')
           {
              
$name = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))));
              
$headers[$name] = $value;
           } else if (
$name == "CONTENT_TYPE") {
              
$headers["Content-Type"] = $value;
           } else if (
$name == "CONTENT_LENGTH") {
              
$headers["Content-Length"] = $value;
           }
       }
       return
$headers;
    }
?>

chears magno c. heck
up
3
lorro at lorro dot hu
9 years ago
Beware that RFC2616 (HTTP/1.1) defines header fields as case-insensitive entities. Therefore, array keys of getallheaders() should be converted first to lower- or uppercase and processed such.
up
1
majksner at gmail dot com
4 years ago
apache_request_headers replicement for nginx

<?php
if (!function_exists('apache_request_headers')) {
        function
apache_request_headers() {
            foreach(
$_SERVER as $key=>$value) {
                if (
substr($key,0,5)=="HTTP_") {
                   
$key=str_replace(" ","-",ucwords(strtolower(str_replace("_"," ",substr($key,5)))));
                   
$out[$key]=$value;
                }else{
                   
$out[$key]=$value;
        }
            }
            return
$out;
        }
}
?>
To Top