PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 3.9.0
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v3.9.0
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / vendor / wpdevelopers / embera / src / Embera / Url.php
embedpress / vendor / wpdevelopers / embera / src / Embera Last commit date
Cache 5 years ago Html 5 years ago Http 5 years ago Provider 3 years ago ProviderCollection 5 years ago Embera.php 3 years ago Url.php 5 years ago
Url.php
171 lines
1 <?php
2 /**
3 * Url.php
4 *
5 * @package Embera
6 * @author Michael Pratt <yo@michael-pratt.com>
7 * @link http://www.michael-pratt.com/
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12
13 namespace Embera;
14
15
16 /**
17 * This class is used to preform common/popular
18 * tasks into a url string
19 */
20 class Url
21 {
22 /** @var string The url */
23 protected $url;
24
25 /** @var string Placeholder for the original url */
26 protected $originalUrl;
27
28 protected $parts = [];
29
30 /**
31 * Construct
32 *
33 * @param string $url A valid url string
34 * @return void
35 */
36 public function __construct($url)
37 {
38 $this->originalUrl = $url;
39 $this->overwrite($url);
40 }
41
42 /**
43 * Returns the full url when
44 * the object is casted into a string
45 *
46 * @return string
47 */
48 public function __toString()
49 {
50 $url = [];
51 if (!in_array(strtolower($this->parts['scheme']), ['http', 'https'])) {
52 $this->parts['scheme'] = 'https';
53 }
54
55 $url[] = $this->parts['scheme'] . '://' . $this->parts['host'] . $this->parts['path'];
56 if (!empty($this->parts['query'])) {
57 $url[] = '?' . $this->parts['query'];
58 }
59
60 if (!empty($this->parts['fragment'])) {
61 $url[] = '#' . $this->parts['fragment'];
62 }
63
64 return implode('', $url);
65 }
66
67 /**
68 * Overwrites the value of $this->url with
69 * the given parameter.
70 *
71 * @param string $url
72 * @return void
73 */
74 public function overwrite($url)
75 {
76 $this->url = $url;
77 $this->parts = array_merge([
78 'scheme' => 'https',
79 'host' => '',
80 'path' => '',
81 'query' => '',
82 'fragment' => '',
83 ], (array) parse_url($url));
84 }
85
86 /**
87 * Discards changes made to a url, and goes back to the original
88 * url.
89 *
90 * @return void
91 */
92 public function discardChanges()
93 {
94 $this->__construct($this->originalUrl);
95 }
96
97 /**
98 * Change the host of the url
99 *
100 * @param string $host
101 * @return void
102 */
103 public function setHost($host)
104 {
105 $this->parts['host'] = $host;
106 }
107
108 /**
109 * Strips the query string from the url
110 *
111 * @return void
112 */
113 public function removeQueryString()
114 {
115 $this->parts['query'] = $this->parts['fragment'] = false;
116 }
117
118 /**
119 * Strips the / at the end of a url
120 *
121 * @return void
122 */
123 public function removeLastSlash()
124 {
125 $this->parts['path'] = rtrim($this->parts['path'], '/');
126 }
127
128 /**
129 * Strips starting www from the url
130 *
131 * @return void
132 */
133 public function removeWWW()
134 {
135 $this->parts['host'] = preg_replace('~^www\.~i', '', $this->parts['host']);
136 }
137
138 /**
139 * Adds www. subdomain to the urls
140 *
141 * @return void
142 */
143 public function addWWW()
144 {
145 if (!preg_match('~^www\.~i', $this->parts['host'])) {
146 $this->parts['host'] = 'www.' . $this->parts['host'];
147 }
148 }
149
150 /**
151 * Replaces https protocol to http
152 *
153 * @return void
154 */
155 public function convertToHttp()
156 {
157 $this->parts['scheme'] = 'http';
158 }
159
160 /**
161 * Replaces http protocol to https
162 *
163 * @return void
164 */
165 public function convertToHttps()
166 {
167 $this->parts['scheme'] = 'https';
168 }
169
170 }
171