TP5.X在apache或者nginx下获取header参数

浏览:973 发布日期:2020/08/25 分类:ThinkPHP5专区
官网代码在nginx+php模式下,获取不到header中的自定义参数,原因是传递的参数是_拼接的,不是-拼接,

首先修改nginx配置underscores_in_headers on;官网代码改造一下function headers() {
        $header = [];
        if(PHP_SAPI == 'apache2handler'){
            $result = apache_request_headers();
            $header = $result;
        }else{
            $server = $_SERVER;
            foreach ($server as $key => $val) {
                if (0 === strpos($key, 'HTTP_')) {
                    $key = strtolower(substr($key, 5));
                    $header[$key] = $val;
                }
            }
            //把系统自带的参数名改成 - 
            $header['user-agent'] = isset($header['user_agent']) ? $header['user_agent'] : '';
            $header['x-forwarded-for'] = isset($header['x_forwarded_for']) ? $header['x_forwarded_for'] : '';
            $header['content-type'] = isset($header['content_type']) ? $header['content_type'] : '';
            $header['content-length'] = isset($header['content_length']) ? $header['content_length'] : '';
            unset($header['content_length'],$header['content_type'],$header['x_forwarded_for'],$header['user_agent']);
        }
        return array_change_key_case($header);
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>