在PHP中使用getallheaders无法获取自定义头如何解决
发表于:2023-03-24 作者:安全数据网编辑
编辑最后更新 2023年03月24日,这篇文章给大家介绍在PHP中使用getallheaders无法获取自定义头如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。php有什么用php是一个嵌套的缩写名称,是英文超
这篇文章给大家介绍在PHP中使用getallheaders无法获取自定义头如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
php有什么用
php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。
请求如下所示:
自定义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无法获取自定义头如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
c语言网络技术和编程语言总结
c语言对应的三级考试网络技术
网站服务器后台如何加防护密码
c语言软件开发步骤
c语言中网络技术知识点
服务器对权限提升的防护措施
怎么在阿里云租服务器
黑苹果能做web服务器吗
c语言和网络技术哪个好考
云服务器2核4G是什么性能
光盘租借系统数据库设计
可视化技术软件开发
软件开发工程师毕业后工资
山西软件开发电话
怎么直接打开服务器的子网页
软件开发的六大最佳实践
狄耐克社区平台数据库连不上
网页运行起来后获取数据库
网络技术对航海的意义
网络安全加固项目存在的主要问题
数据库系统概论er图转关系模式
江苏pdu服务器电源大概多少钱
竞技世界网络技术公司
幼儿园网络安全教育主要内容
软件开发行业新手入门
我的世界国际服务器咋调中文
达梦数据库删除模式schema
远程管理服务器ftf
关于网络安全的课题论文题目
我的世界云天府服务器
3shape如何设计牙型数据库
临汾网络安全宣传法治日
三个强化网络安全
华众科技互联网
河南软件开发者多少钱
国家推动网络安全社会化
无限流量软件服务器
凡科互联网科技股份有限公司复试
我的世界建服务器教程
我的世界国际服务器咋调中文