在PHP中使用getallheaders无法获取自定义头如何解决

  介绍

这篇文章给大家介绍在PHP中使用getallheaders无法获取自定义头如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

PHP有什么用

PHP是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及PHP自创新的语法,主要用来做网站开发,许多小型网站都用PHP开发,因为PHP是开源的,从而使PHP经得久不衰。

请求如下所示:

在PHP中使用getallheaders无法获取自定义头如何解决”>,</p> <p> <>强自定义http请求头</强> </p> <pre类= var_dump (getallheaders);

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

if  (! function_exists (& # 39; getallheaders& # 39;)), {   function  getallheaders (), {   数组$ headers =, ();   foreach  (_SERVER 美元;as  name 美元;=祝辞,美元值),{   if  (substr(名称、美元,0,,5),==,& # 39;HTTP_& # 39;), {   $头[str_replace(& # 39;, & # 39;,, & # 39; & # 39;,,函数(函数(str_replace (& # 39; _ # 39;,, & # 39;, & # 39;,, substr(美元的名字,,5)))))),=,美元价值;   }   }   return 美元头;   }   }   var_dump (getallheaders ());

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

在PHP中使用getallheaders无法获取自定义头如何解决”>,</p> <p> <强> PHP中$ _SERVER变量</强> </p> <p>另外关于自定义Http头,需要注意头的命名规范,不能用下划线命名,否则在nginx服务器下读取不到,在查找命名规范的时候,有提到自定义属性用X -开头这个问题。后来查阅了一些资料,发现后来的Http协议不建议这样去做。</p> <p class=关于在PHP中使用getallheaders无法获取自定义头如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

在PHP中使用getallheaders无法获取自定义头如何解决