PHP getallheaders无法获取自定义标题
当客户端请求时,会添加一个用户定义的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(str lower(str _ replace(' _ ',' ',substr($ name,5)))))]=$ value;} }返回$ headers} } var _ dump(getallheaders());事实上,这个方法是在$_SERVER变量中找到以HTTP_开头的属性,并用字符串替换它。$ SERVER变量中的HTTP_USER_ID实际上是上面定义的用户标识:
php中的$_SERVER变量。
此外,关于自定义Http头,应该注意头的命名规范,不能用下划线命名,否则无法在nginx服务器下读取。在搜索命名规范时,提到了自定义属性以X开头的问题。后来查阅了一些资料,发现后来的http协议不建议这样做。
以上内容与PHP getallheaders无法获取自定义头的问题有关。希望对大家有帮助!
版权声明:PHP getallheaders无法获取自定义标题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。