从vhost配置获取PHP中的响应头

时间:2012-10-12 11:10:36

标签: php apache http

我有一个vhost配置,它有一个指令可以为每个请求添加一个响应头,如下所示:

Header append X-MyHeader "Info Stuff in here"

如果我在此服务器上运行phpinfo(),我会在标题 HTTP标头信息下的apache2handler部分中看到此标头作为 HTTP响应标头。 PHP似乎能够以某种方式访问​​此信息。

我尝试headers_list()apache_response_headers()为我的脚本获取此信息,但它已丢失。

谷歌搜索没有提出解决方案,似乎这是一个罕见的案例。关于SO的另一个问题得到了真正再次查询服务器并查看标题的答案,但我不会这样做,因为我需要关于我所服务的每个请求的信息 - 子请求似乎太过性能损失。

phpinfo()如何知道这些值?

Update1:​​PHP没有显示任何超级全局内的值,如$_SERVER$_ENV等。我在phpinfo页面上看到的唯一位置是在上面提到的部分。否则,这将是一个明智的选择。

1 个答案:

答案 0 :(得分:0)

你可以这样做,但要确保它在文件中比打印的任何其他内容更高,否则你会收到错误。

<?php
foreach($_SERVER as $h=>$v)
 if(preg_match('/HTTP_(.+)/',$h,$hp))
   echo "<li>$h = $v</li>\n";
?>

编辑: 你有FastCGI吗?

试试此链接:$_SERVER headers are missing in PHP but present in Python

相关问题