-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathurl.php
More file actions
116 lines (96 loc) · 2.38 KB
/
Copy pathurl.php
File metadata and controls
116 lines (96 loc) · 2.38 KB
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
105
106
107
108
109
110
111
112
113
114
115
116
<?php
class URL {
static function host () {
return $_SERVER['HTTP_HOST'];
}
static function script () {
return $_SERVER['SCRIPT_NAME'];
}
static function query () {
return $_SERVER['QUERY_STRING'];
}
static function uri () {
return substr($_SERVER['REQUEST_URI'], 1);
}
static function ssl () {
return $_SERVER['HTTPS'] == 'on' ? true : false; //check against server port instead?
}
static function segments ($part = null) {
$uri = explode("/", self::uri());
if (is_numeric($part) && !is_null($part))
return $uri[$part];
else
foreach($uri as $key => $value)
if ($value == '')
unset($uri[$key]);
return array_values($uri);
}
static function contains ($var) {
$parts = self::segments();
if(in_array($var, $parts))
return true;
else
return false;
}
static function like ($var) {
$uri = self::uri();
if(strpos($uri, $var))
return true;
else
return false;
}
static function first () {
return self::segments(0);
}
static function last () {
$x = count(self::segments()) - 1;
return self::segments($x);
}
static function reverse ($string = false) {
$reversed = array_reverse(self::segments());
if ($string)
return implode("/", $reversed);
else
return $reversed;
}
static function build ($array, $prefix = '?', $suffix = null) {
return $prefix . http_build_query($array) . $suffix;
}
static function parse ($var, $key = null) {
$parsed = parse_url($var);
if(is_null($key))
return $parsed;
else
return $parsed[$key];
}
static function slugify($var, $replace="-") {
if(is_string($var)) {
if (function_exists('iconv')) {
$var = @iconv('UTF-8', 'ASCII//TRANSLIT', $var);
}
} elseif (is_array($var)) {
$var = implode("/", $var);
}
$var = preg_replace('/\W+/', $replace, $var);
$var = strtolower(trim($var, $replace));
return $var;
}
static function convert ($str = null, $keys = false, $remove = true) {
if(is_null($str)) {
$str = self::query();
}
parse_str($str, $output);
$uri = array();
foreach($output as $key => $value) {
if($key == 'url' && $remove) continue;
$uri[] = $keys ? $key : $value;
}
return strtolower(implode("/", $uri));
}
static function encode ($str) {
return htmlentities(urlencode($str));
}
static function decode ($str) {
return htmlspecialchars(urldecode($str));
}
}