前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从Yii2和TP5中看PHP如何获取所有请求头

从Yii2和TP5中看PHP如何获取所有请求头

作者头像
写PHP的老王
发布2019-08-12 15:22:30
3.7K0
发布2019-08-12 15:22:30
举报
文章被收录于专栏:写PHP的老王写PHP的老王

内容目录

Yii2 获取所有请求头Thinkphp5获取所有请求头获取请求头的函数

Yii2 获取所有请求头

代码语言:javascript
复制
    public function getHeaders()
    {
        $headers = [];
        if (function_exists('getallheaders')) {
            $headers = getallheaders();

        } elseif (function_exists('http_get_request_headers')) {
            $headers = http_get_request_headers();

        } else {
            foreach ($_SERVER as $name => $value) {
                if (strncmp($name, 'HTTP_', 5) === 0) {
                    $name = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))));
                    $headers[$name] = $value;
                }
            }
        }
        return $headers;
    }

Yii2中采用了两个函数getallheadershttp_get_request_headers 尝试获取请求头。getallheaders函数是函数apache_request_headers的别名。如果函数不存在,再通过_SERVER获取。_SERVER获取请求头,将下划线转换成中划线,首字母大写的请求头。

Thinkphp5获取所有请求头

代码语言:javascript
复制
    public function getHeaders()
    {
        $headers = [];
        if (function_exists('apache_request_headers') && $result = apache_request_headers()) {
            $headers = $result;
        } else {
            foreach ($_SERVER as $key => $val) {
                if (0 === strpos($key, 'HTTP_')) {
                    $key          = str_replace('_', '-', strtolower(substr($key, 5)));
                    $headers[$key] = $val;
                }
            }

        }
        $headers = array_change_key_case($headers);
    }

Thinkphp5中采用了两个函数apache_request_headers 尝试获取请求头。如果函数不存在,再通过_SERVER获取。_SERVER获取请求头,将下划线转换成中划线,小写字母请求头。

获取请求头的函数

  • apache_request_headers函数是Apache下才支持的函数。NGINX不支持!!
  • http_get_request_headers,函数依赖PECL pecl_http >= 0.10.0
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 写PHP的老王 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内容目录
  • Yii2 获取所有请求头
  • Thinkphp5获取所有请求头
  • 获取请求头的函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档