aboutsummaryrefslogtreecommitdiff
path: root/src/phinde/Helper.php
blob: d22b9c89f16a46e6597bd8586ed1b4189a140190 (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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
namespace phinde;

class Helper
{
    public static function rewriteUrl($url)
    {
        if (!isset($GLOBALS['phinde']['urlRewrites'])
            || count($GLOBALS['phinde']['urlRewrites']) == 0
        ) {
            return $url;
        }

        foreach ($GLOBALS['phinde']['urlRewrites'] as $pattern => $replacement) {
            $url = preg_replace('#' . $pattern . '#', $replacement, $url);
        }
        return $url;
    }

    public static function isUrlAllowed($url)
    {
        $urlDomain = parse_url($url, PHP_URL_HOST);
        if (!in_array($urlDomain, $GLOBALS['phinde']['domains'])) {
            return false;
        }
        return true;
    }

    public static function noSchema($url)
    {
        return str_replace(
            array('http://', 'https://'),
            '',
            $url
        );
    }

    public static function addSchema($url)
    {
        if (substr($url, 0, 7) == 'http://'
            || substr($url, 0, 8) == 'https://'
        ) {
            return $url;
        }
        return 'http://' . $url;
    }

    public static function removeAnchor($url)
    {
        $parts = explode('#', $url, 2);
        return $parts[0];
    }

    public static function sanitizeTitle($str)
    {
        return trim(
            str_replace(
                array("\r", "\n", '  ', '  '),
                array('', ' ', ' ', ' '),
                $str
            )
        );
    }

    /**
     * Create a full URL with protocol and host name
     *
     * @param string $path Path to the file, with leading /
     *
     * @return string Full URL
     */
    public static function fullUrl($path = '/')
    {
        if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']) {
            $prot = 'https';
        } else {
            $prot = 'http';
        }
        return $prot . '://' . $_SERVER['HTTP_HOST'] . $path;
    }

    static $timer = [];

    public static function start($timer = 'timer')
    {
        static::$timer[$timer] = microtime(true);
    }

    public static function stop($timer = 'timer')
    {
        $diff = microtime(true) - static::$timer[$timer];
        echo '+timer: ' . number_format($diff, 3) . 'ms ' . $timer . "\n";
    }

    public static function baseDoc($url)
    {
        $esDoc = new \stdClass();
        $esDoc->status = new \stdClass();
        $esDoc->url = $url;
        $esDoc->schemalessUrl = Helper::noSchema($url);
        return $esDoc;
    }
}
?>