如何让PHP显示从浏览器收到的标头?

teh*_*yan 32 php header http

它们都存储在$_SERVER?即使是定制的?

Ste*_*nte 39

试试这个

print_r($ _ SERVER)

它将列出数组中的所有内容


aph*_*hoe 26

您可以使用getallheaders()获取发送的所有HTTP标头的数组.

$headers =  getallheaders();
foreach($headers as $key=>$val){
  echo $key . ': ' . $val . '<br>';
}
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 21

每个HTTP请求标头字段都在$_SERVER(除外Cookie),密钥以HTTP_.开头.如果你正在使用Apache,你也可以试试apache_request_headers.


Pan*_*al. 8

您可以简单地使用apache_request_headers()或使用别名getallheaders().

用法: echo json_encode(getallheaders());

如果上面的函数不存在(旧的PHP或nginx),你可以使用它作为后备:

<?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; 
    } 
}
?>
Run Code Online (Sandbox Code Playgroud)


dav*_*nal 6

查看$ _SERVER变量以查看它包含的内容.链接的手册页有很多有用的信息,但也可以直接var_dump查看它的实际内容.许多条目将会或不会被填写,具体取决于客户决定做什么,以及PHP的奇怪怪癖.查看我本地服务器上的那个,还有一个$ _SERVER ["ALL_HTTP"]条目,它们只是将它们全部列为字符串,但显然这不是标准的,因为它没有在手册页上列出.