获取当前HTTP请求的header头所有键/值转换成关联数组

222次阅读
没有评论

PHP 自定义函数,
获取当前 HTTP 请求的 header 头所有键 / 值将其转换成关联数组

    /**
     * Get all HTTP header key/values as an associative array for the current request.
     *
     * @return string[string] The HTTP header key/value pairs.
     */
    function getallheaders()
    {$headers = array();

        $copy_server = array(
            'CONTENT_TYPE'   => 'Content-Type',
            'CONTENT_LENGTH' => 'Content-Length',
            'CONTENT_MD5'    => 'Content-Md5',
        );

        foreach ($_SERVER as $key => $value) {if (substr($key, 0, 5) === 'HTTP_') {$key = substr($key, 5);
                if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) {$key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key))));
                    $headers[$key] = $value;
                }
            } elseif (isset($copy_server[$key])) {$headers[$copy_server[$key]] = $value;
            }
        }

        if (!isset($headers['Authorization'])) {if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {$headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
            } elseif (isset($_SERVER['PHP_AUTH_USER'])) {$basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
                $headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass);
            } elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) {$headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST'];
            }
        }

        return $headers;
    }
正文完
有偿技术支持加微信
post-qrcode
 
评论(没有评论)
验证码