我怎样才能让PHP来显示它从一个浏览器接收头?(How can I get PHP to displ

2019-07-17 14:30发布

他们全部存储在$_SERVER ? 即使是自定义的?

Answer 1:

试试这个

print_r ($ _ SERVER)

它会列出阵列内的一切



Answer 2:

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

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


Answer 3:

每个HTTP请求报头字段是在$_SERVER (除Cookie )和与该键开始HTTP_ 。 如果你使用Apache,你也可以尝试apache_request_headers



Answer 4:

你可以简单地使用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; 
    } 
}
?>


Answer 5:

看看$ _SERVER变量,看它所包含的内容。 链接的手册页有很多有用的信息,也根本做var_dump它来看看它实际上是。 许多条目会或不会进行,弥漫在这取决于客户决定做,和PHP的奇怪怪癖。 看着我的本地服务器上的一个,还有一个$ _ SERVER [“ALL_HTTP”]条目,只是列出它们都作为一个字符串,但显然这是不规范的,因为它没有手动页面上列出。



Answer 6:

你可以使用apache_request_header(); 也许帮助你。

$headers = apache_request_headers();        
foreach ($headers as $header => $value) {
 echo "<pre>";
 echo "$header : $value";
 echo "</pre>";
}


文章来源: How can I get PHP to display the headers it received from a browser?
标签: php http header