时间:2021-05-26
在客户端请求的时候增加了自定义的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)的问题的相关叙述,希望对大家有所帮助!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了Android自定义控件ViewGroup实现标签云的具体代码,供大家参考,具体内容如下实现的功能:基本绘制流程:构造函数获取自定义属性on
//获取属性值1 jQuery取值:$("#text").attr("value"); //获取自定义属性值2 JQUERY取值:$("#te
获取自定义菜单查询返回的结果有乱码解决方法:stringPosturl="https://api.weixin.qq.com/cgi-bin/menu/get&
本文实例讲述了JS实现获取自定义属性data值的方法。分享给大家供大家参考,具体如下:HTML部分:js部分:vartree=document.getEleme
本文实例讲述了帝国CMS在自定义列表中获取当前列表ID的方法。分享给大家供大家参考,具体如下:今天用帝国CMS做一个项目时,发现帝国自定义列表中无法获取当前自定