<?php
namespace ticky\helper;
class url {
public static function getPath($url) {
return parse_url($url, PHP_URL_PATH);
}
public static function getScheme($url) {
$scheme = parse_url($url, PHP_URL_SCHEME);
if ($scheme) {
return parse_url($url, PHP_URL_SCHEME);
}
return 'http';
}
public static function getHost($url) {
return parse_url($url, PHP_URL_HOST);
}
public static function getDomain($url) {
return self::getScheme($url) . '://' . $_SERVER['HTTP_HOST'];
}
public static function getQuery($url) {
return parse_url($url, PHP_URL_QUERY);
}
public static function getExtension($url) {
$extension = pathinfo(self::getPath($url), PATHINFO_EXTENSION);
if (strpos($extension, '?') !== false) {
list($extension, $params) = explode('?', $extension);
} elseif (strpos($extension, '&') !== false) {
list($extension, $params) = explode('&', $extension);
} elseif (strpos($extension, '#') !== false) {
list($extension, $params) = explode('#', $extension);
}
return strtolower($extension);
}
public static function base64_encode($url) {
return str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($url));
}
public static function base64_decode($str) {
$data = str_replace(['-', '_'], ['+', '/'], $str);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}
}