|
Server : Apache System : Linux s1230 5.15.0-139-generic #149~20.04.1 SMP Tue Jul 14 11:21:49 UTC 2026 x86_64 User : p141464 ( 418825) PHP Version : 7.4.33.12 Disable Function : NONE Directory : /html/relaunch-kmu/wp-content/plugins/real-cookie-banner/vendor/mpratt/embera/src/Embera/ |
Upload File : |
<?php
/**
* Url.php
*
* @package Embera
* @author Michael Pratt <yo@michael-pratt.com>
* @link http://www.michael-pratt.com/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace DevOwl\RealCookieBanner\Vendor\Embera;
/**
* This class is used to preform common/popular
* tasks into a url string
* @internal
*/
class Url
{
/** @var string The url */
protected $url;
/** @var string Placeholder for the original url */
protected $originalUrl;
protected $parts = [];
/**
* Construct
*
* @param string $url A valid url string
* @return void
*/
public function __construct($url)
{
$this->originalUrl = $url;
$this->overwrite($url);
}
/**
* Returns the full url when
* the object is casted into a string
*
* @return string
*/
public function __toString()
{
$url = [];
if (!\in_array(\strtolower($this->parts['scheme']), ['http', 'https'])) {
$this->parts['scheme'] = 'https';
}
$url[] = $this->parts['scheme'] . '://' . $this->parts['host'] . $this->parts['path'];
if (!empty($this->parts['query'])) {
$url[] = '?' . $this->parts['query'];
}
if (!empty($this->parts['fragment'])) {
$url[] = '#' . $this->parts['fragment'];
}
return \implode('', $url);
}
/**
* Overwrites the value of $this->url with
* the given parameter.
*
* @param string $url
* @return void
*/
public function overwrite($url)
{
$this->url = $url;
$this->parts = \array_merge(['scheme' => 'https', 'host' => '', 'path' => '', 'query' => '', 'fragment' => ''], (array) \parse_url($url));
}
/**
* Discards changes made to a url, and goes back to the original
* url.
*
* @return void
*/
public function discardChanges()
{
$this->__construct($this->originalUrl);
}
/**
* Change the host of the url
*
* @param string $host
* @return void
*/
public function setHost($host)
{
$this->parts['host'] = $host;
}
/**
* Strips the query string from the url
*
* @return void
*/
public function removeQueryString()
{
$this->parts['query'] = $this->parts['fragment'] = \false;
}
/**
* Strips the / at the end of a url
*
* @return void
*/
public function removeLastSlash()
{
$this->parts['path'] = \rtrim($this->parts['path'], '/');
}
/**
* Strips starting www from the url
*
* @return void
*/
public function removeWWW()
{
$this->parts['host'] = \preg_replace('~^www\\.~i', '', $this->parts['host']);
}
/**
* Adds www. subdomain to the urls
*
* @return void
*/
public function addWWW()
{
if (!\preg_match('~^www\\.~i', $this->parts['host'])) {
$this->parts['host'] = 'www.' . $this->parts['host'];
}
}
/**
* Replaces https protocol to http
*
* @return void
*/
public function convertToHttp()
{
$this->parts['scheme'] = 'http';
}
/**
* Replaces http protocol to https
*
* @return void
*/
public function convertToHttps()
{
$this->parts['scheme'] = 'https';
}
}