Chris@17
|
1 <?php
|
Chris@17
|
2
|
Chris@17
|
3 if (!function_exists('getallheaders')) {
|
Chris@17
|
4
|
Chris@17
|
5 /**
|
Chris@17
|
6 * Get all HTTP header key/values as an associative array for the current request.
|
Chris@17
|
7 *
|
Chris@17
|
8 * @return string[string] The HTTP header key/value pairs.
|
Chris@17
|
9 */
|
Chris@17
|
10 function getallheaders()
|
Chris@17
|
11 {
|
Chris@17
|
12 $headers = array();
|
Chris@17
|
13
|
Chris@17
|
14 $copy_server = array(
|
Chris@17
|
15 'CONTENT_TYPE' => 'Content-Type',
|
Chris@17
|
16 'CONTENT_LENGTH' => 'Content-Length',
|
Chris@17
|
17 'CONTENT_MD5' => 'Content-Md5',
|
Chris@17
|
18 );
|
Chris@17
|
19
|
Chris@17
|
20 foreach ($_SERVER as $key => $value) {
|
Chris@17
|
21 if (substr($key, 0, 5) === 'HTTP_') {
|
Chris@17
|
22 $key = substr($key, 5);
|
Chris@17
|
23 if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) {
|
Chris@17
|
24 $key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key))));
|
Chris@17
|
25 $headers[$key] = $value;
|
Chris@17
|
26 }
|
Chris@17
|
27 } elseif (isset($copy_server[$key])) {
|
Chris@17
|
28 $headers[$copy_server[$key]] = $value;
|
Chris@17
|
29 }
|
Chris@17
|
30 }
|
Chris@17
|
31
|
Chris@17
|
32 if (!isset($headers['Authorization'])) {
|
Chris@17
|
33 if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
|
Chris@17
|
34 $headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
|
Chris@17
|
35 } elseif (isset($_SERVER['PHP_AUTH_USER'])) {
|
Chris@17
|
36 $basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
|
Chris@17
|
37 $headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass);
|
Chris@17
|
38 } elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) {
|
Chris@17
|
39 $headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST'];
|
Chris@17
|
40 }
|
Chris@17
|
41 }
|
Chris@17
|
42
|
Chris@17
|
43 return $headers;
|
Chris@17
|
44 }
|
Chris@17
|
45
|
Chris@17
|
46 }
|