PHP Unconference Europe 2015

getallheaders

(PHP 4, PHP 5)

getallheadersدریافت تمام سرآیندهای درخواستHTTP

Description

array getallheaders ( void )

دریافت تمام سرایندهای HTTP در درخواست فعلی.

این تابع یک جایگزین برای apache_request_headers() است. لطفا مستندات apache_request_headers() را برای اطلاعات بیشتر درباره عملکرد این تابع بخوانید.

This function is only supported when PHP is installed as an Apache module.

Return Values

یک آرایه شرکت‌پذیر از تمام سرآیندهای HTTP در درخواست فعلی یا FALSE در صورت شکست.

Changelog

Version Description
4.3.0 یک جایگزین برای apache_request_headers() شد. لزوما تغییر نام داده شد. این تغییر نام بدلیل استفاده آن در آپاچی بصورت خاص بوده است.

Examples

Example #1 مثال getallheaders()

<?php

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

?>

Notes

Note:

As of PHP 4.3.3 you can use this function with the NSAPI server module in Netscape/iPlanet/SunONE webservers, too.

See Also

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