PHP getallheaders无法获取自定义头(headers)的问题

 更新时间:2016年03月23日 10:13:14   投稿:mrr  
这篇文章主要介绍了PHP getallheaders无法获取自定义头(headers)的问题的相关资料,需要的朋友可以参考下

在客户端请求的时候增加了自定义的http头,请求如下所示:

 

自定义http请求头

var_dump(getallheaders);

一开始通过getallheaders参数获取,但是发现在nginx部署的服务器上获取不到,非常奇怪,查看php手册发现getallheaders这个函数只支持apache服务器。于是找到兼容的方法:

if (!function_exists('getallheaders')) {
function getallheaders() {
$headers = array();
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
}
var_dump(getallheaders());

实际上这个方法就是找到$_SERVER变量中以HTTP_开头的属性,对属性做一个字符串替换这样。$_SERVER变量中的HTTP_USER_ID实际就是上面自定义的User-Id:

 

php中$_SERVER变量

另外关于自定义Http头, 需要注意头的命名规范,不能用下划线命名 ,否则在nginx服务器下读取不到,在查找命名规范的时候,有提到自定义属性用X-开头这个问题。后来查阅了一些资料,发现后来的http协议不建议这样去做。

以上内容是针对PHP getallheaders无法获取自定义头(headers)的问题的相关叙述,希望对大家有所帮助!

相关文章

  • thinkPHP框架自动填充原理与用法分析

    thinkPHP框架自动填充原理与用法分析

    这篇文章主要介绍了thinkPHP框架自动填充,结合实例形式较为详细的分析了thinkPHP框架自动填充的原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-04-04
  • php while循环控制的简单实例

    php while循环控制的简单实例

    下面小编就为大家带来一篇php while循环控制的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • CTF中的PHP特性函数解析之中篇

    CTF中的PHP特性函数解析之中篇

    这篇文章主要为大家介绍了CTF中的PHP特性函数解析,本文分三篇此篇为中篇,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Yii入门教程之Yii安装及hello world

    Yii入门教程之Yii安装及hello world

    本文介绍了在windows环境下Yii的安装过程以及第一个"hello world"的诞生过程,图文并茂,非常的详尽,有需要的小伙伴参考下。
    2014-11-11
  • 微信企业转账之入口类分装php代码

    微信企业转账之入口类分装php代码

    这篇文章主要为大家详细介绍了微信企业转账之入口类分装php代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • PHP如何防止用户重复提交表单

    PHP如何防止用户重复提交表单

    这篇文章主要介绍了PHP如何防止用户重复提交表单,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Laravel等框架模型关联的可用性浅析

    Laravel等框架模型关联的可用性浅析

    这篇文章主要给大家介绍了关于Laravel等框架模型关联的可用性的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel等框架具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Laravel框架源码解析之反射的使用详解

    Laravel框架源码解析之反射的使用详解

    这篇文章主要介绍了Laravel框架源码解析之反射的使用,结合实例形式详细分析了Laravel源码解析中反射的基本原理、使用方法及操作注意事项,需要的朋友可以参考下
    2020-05-05
  • 使用PHP开发留言板功能

    使用PHP开发留言板功能

    这篇文章主要介绍了使用PHP开发留言板功能,本文通过一段代码给大家讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Laravel5.1 框架路由基础详解

    Laravel5.1 框架路由基础详解

    这篇文章主要介绍了Laravel5.1 框架路由基础,结合实例形式分析了laravel5.1框架路由的基本原理、路由参数、正则约束等相关使用技巧,需要的朋友可以参考下
    2020-01-01

最新评论