46 lines
1.4 KiB
PHP
46 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace lib\Core;
|
|
|
|
abstract class Helper
|
|
{
|
|
protected function __construct() {} //
|
|
|
|
public static function baseUrl(): string
|
|
{
|
|
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://";
|
|
$host = $_SERVER['HTTP_HOST'] ?? 'localhost';
|
|
$script = str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
|
|
|
|
return rtrim($protocol . $host . $script, '/');
|
|
}
|
|
|
|
public static function currentUrl(): string
|
|
{
|
|
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://";
|
|
$host = $_SERVER['HTTP_HOST'] ?? 'localhost';
|
|
$uri = $_SERVER['REQUEST_URI'] ?? '';
|
|
|
|
return $protocol . $host . $uri;
|
|
}
|
|
|
|
public static function previousUrl(): ?string
|
|
{
|
|
return $_SERVER['HTTP_REFERER'] ?? null;
|
|
}
|
|
|
|
public static function urlIs(string $pattern): bool
|
|
{
|
|
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
|
$pattern = str_replace('*', '.*', preg_quote($pattern, '/'));
|
|
return preg_match("/^{$pattern}$/", $uri) === 1;
|
|
}
|
|
|
|
public static function getSegment(int $index): ?string
|
|
{
|
|
$uri = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');
|
|
$segments = explode('/', $uri);
|
|
return $segments[$index - 1] ?? null;
|
|
}
|
|
} //Class
|