PHP getallheaders无法获取自定义头(headers)的问题
作者:mrr 时间:2024-04-30 08:47:30
在客户端请求的时候增加了自定义的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)的问题的相关叙述,希望对大家有所帮助!
标签:php,getallheaders,自定义,headers
0
投稿
猜你喜欢
如何基于Python pygame实现动画跑马灯
2023-09-07 18:56:59
写给JavaScript库开发者们的规则
2008-10-26 12:30:00
Python实现全局变量的两个解决方法
2021-03-23 22:43:44
Git建立本地仓库并上传到Gitee的详细步骤
2023-03-06 20:45:21
Python解决多进程间访问效率低的方法总结
2023-11-25 11:57:43
文字解说Golang Goroutine和线程的区别
2023-10-15 18:56:36
gchart:基于google图表API的jquery组件全攻略:1、入门
2010-01-25 12:18:00
python小程序实现刷票功能详解
2022-08-23 06:17:22
Oracle中sys和system的区别小结
2009-11-10 20:36:00
Python转换字典成为对象,可以用"."方式访问对象属性实例
2021-06-01 09:01:50
WPF滑块控件(Slider)的自定义样式
2022-01-19 20:05:02
python实现csdn全部博文下载并转PDF
2023-08-13 05:26:41
实例讲解Python的函数闭包使用中应注意的问题
2022-05-17 23:29:53
python抓取网页中的图片示例
2022-02-24 20:07:22
选择什么样的DOCTYPE
2007-05-31 09:32:00
JavaScript match() 方法
2007-11-04 13:28:00
三大措施设置数据库安全 保障网站安全运营
2008-11-28 14:41:00
Python实现周期性抓取网页内容的方法
2023-04-12 01:33:36
在Typescript中如何使用for...in详解
2023-08-18 15:39:32
Python文本终端GUI框架示例详细讲解
2021-05-19 22:47:12