PHP getallheaders无法获取自定义头(headers)的问题


Posted in PHP onMarch 23, 2016

在客户端请求的时候增加了自定义的http头,请求如下所示:

PHP getallheaders无法获取自定义头(headers)的问题 

自定义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 getallheaders无法获取自定义头(headers)的问题 

php中$_SERVER变量

另外关于自定义Http头, 需要注意头的命名规范,不能用下划线命名 ,否则在nginx服务器下读取不到,在查找命名规范的时候,有提到自定义属性用X-开头这个问题。后来查阅了一些资料,发现后来的http协议不建议这样去做。

以上内容是针对PHP getallheaders无法获取自定义头(headers)的问题的相关叙述,希望对大家有所帮助!

PHP 相关文章推荐
require(),include(),require_once()和include_once()区别
Mar 27 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
Jul 24 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
php文件缓存类汇总
Nov 21 PHP
php开发微信支付获取用户地址
Oct 04 PHP
php短信接口代码
May 13 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
Jun 30 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
Mar 23 #PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 #PHP
Zend Framework开发入门经典教程
Mar 23 #PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 #PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 #PHP
PHP正则获取页面所有图片地址
Mar 23 #PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 #PHP
You might like
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
python基础知识小结之集合
2015/11/25 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
Python线程指南分享
2019/11/19 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
企业理念标语
2014/06/09 职场文书
民事赔偿协议书
2014/11/02 职场文书
村干部任职承诺书
2015/01/21 职场文书
孔庙导游词
2015/02/04 职场文书
妈妈别哭观后感
2015/06/08 职场文书
2015年重阳节主持词
2015/07/04 职场文书
导游词之张家口
2019/12/13 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android