Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

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