summaryrefslogtreecommitdiffstats
path: root/lib/kolab_utils.php
blob: 97b8bdf42cf0c7b94b77b60c5c52e7d196341aa1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php

    class kolab_utils {
        /**
         * Read a specific HTTP request header
         *
         * @param  string $name Header name
         * @return mixed  Header value or null if not available
         */
        public static function get_request_header($name) {
            if (function_exists('getallheaders')) {
                $hdrs = array_change_key_case(getallheaders(), CASE_UPPER);
                $key  = strtoupper($name);
            } else {
                $key  = 'HTTP_' . strtoupper(strtr($name, '-', '_'));
                $hdrs = array_change_key_case($_SERVER, CASE_UPPER);
            }

            if (array_key_exists($key, $hdrs)) {
                return $hdrs[$key];
            } else {
                return null;
            }
        }

        /**
         * Make sure the string ends with a slash
         */
        public static function slashify($str)
        {
            return self::unslashify($str).'/';
        }

        /**
         * Remove slash at the end of the string
         */
        public static function unslashify($str)
        {
            return preg_replace('/\/$/', '', $str);
        }

        public static function get_input($name, $type = null, $allow_html = false)
        {
            if ($type == 'GET') {
                $value = isset($_GET[$name]) ? $_GET[$name] : null;
            }
            else if ($type == 'POST') {
                $value = isset($_POST[$name]) ? $_POST[$name] : null;
            }
            else {
                $value = isset($_REQUEST[$name]) ? $_REQUEST[$name] : null;
            }

            return self::parse_input($value, $allow_html);
        }

        public static function parse_input($value, $allow_html = false)
        {
            if (empty($value)) {
                return $value;
            }

            if (is_array($value)) {
                foreach ($value as $idx => $val) {
                    $value[$idx] = self::parse_input($val, $allow_html);
                }
            }
            // remove HTML tags if not allowed
            else if (!$allow_html) {
                $value = strip_tags($value);
            }

            return $value;
        }

    }

?>