__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php /** * @package Regular Labs Library * @version 23.12.10783 * * @author Peter van Westen <[email protected]> * @link https://regularlabs.com * @copyright Copyright © 2023 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Library; defined('_JEXEC') or die; use Joomla\CMS\Router\Route as JRoute; use Joomla\CMS\Uri\Uri as JUri; class Uri { /** * Adds the given url parameter (key + value) to the url or replaces it already exists */ public static function addParameter( string $url, string $key, string $value = '', bool $replace = true ): string { if (empty($key)) { return $url; } $uri = parse_url($url); $query = self::parse_query($uri['query'] ?? ''); if ( ! $replace && isset($query[$key])) { return $url; } $query[$key] = $value; $uri['query'] = http_build_query($query); return self::createUrlFromArray($uri); } /** * Appends the given hash to the url or replaces it if there is already one */ public static function appendHash(string $url = '', string $hash = ''): string { if (empty($hash)) { return $url; } $uri = parse_url($url); $uri['fragment'] = $hash; return self::createUrlFromArray($uri); } /** * Converts an array of url parts (like made by parse_url) to a string */ public static function createUrlFromArray(array $uri): string { $user = $uri['user'] ?? ''; $pass = ! empty($uri['pass']) ? ':' . $uri['pass'] : ''; return (! empty($uri['scheme']) ? $uri['scheme'] . '://' : '') . (($user || $pass) ? $user . $pass . '@' : '') . (! empty($uri['host']) ? $uri['host'] : '') . (! empty($uri['port']) ? ':' . $uri['port'] : '') . (! empty($uri['path']) ? $uri['path'] : '') . (! empty($uri['query']) ? '?' . $uri['query'] : '') . (! empty($uri['fragment']) ? '#' . $uri['fragment'] : ''); } public static function decode(string $string, bool $urldecode = true): string { if ($urldecode) { $string = urldecode($string); } $string = base64_decode($string); $deflated = @gzinflate($string); if ($string === $deflated || ! $deflated) { return $string; } return $deflated; } public static function encode(string $string, bool $urlencode = true): string { $string = base64_encode(gzdeflate($string)); if ($urlencode) { $string = urlencode($string); } return $string; } /** * Returns the full uri and optionally adds/replaces the hash */ public static function get(string $hash = ''): string { $url = JUri::getInstance()->toString(); if ($hash == '') { return $url; } return self::appendHash($url, $hash); } public static function getCompressedAttributes(): string { $compressed = ''; for ($i = 0; $i < 10; $i++) { $compressed .= Input::getString('rlatt_' . $i, ''); } return self::decode($compressed, false); } /** * Get the value of a given url parameter from the url */ public static function getParameter(string $url, string $key): mixed { if (empty($key)) { return ''; } $uri = parse_url($url); if ( ! isset($uri['query'])) { return ''; } $query = self::parse_query($uri['query']); return $query[$key] ?? ''; } /** * Get all url parameters from the url */ public static function getParameters(string $url): object { $uri = parse_url($url); if ( ! isset($uri['query'])) { return (object) []; } $query = self::parse_query($uri['query']); return (object) $query; } public static function isExternal(string $url): bool { if ( ! str_contains($url, '://')) { return false; } // hostname: give preference to SERVER_NAME, because this includes subdomains $hostname = ($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : $_SERVER['HTTP_HOST']; return ! (str_starts_with(RegEx::replace('^.*?://', '', $url), $hostname)); } /** * removes the given url parameter from the url */ public static function removeParameter(string $url, string $key): string { if (empty($key)) { return $url; } $uri = parse_url($url); if ( ! isset($uri['query'])) { return $url; } $query = self::parse_query($uri['query']); unset($query[$key]); $uri['query'] = http_build_query($query); return self::createUrlFromArray($uri); } public static function route(string $url): string { return JRoute::_(JUri::root(true) . '/' . $url); } /** * Parse a query string into an associative array. */ private static function parse_query(string $string): array { $result = []; if ($string === '') { return $result; } $decoder = fn($value) => rawurldecode(str_replace('+', ' ', $value)); foreach (explode('&', $string) as $kvp) { $parts = explode('=', $kvp, 2); $key = $decoder($parts[0]); $value = isset($parts[1]) ? $decoder($parts[1]) : null; if ( ! isset($result[$key])) { $result[$key] = $value; continue; } if ( ! is_array($result[$key])) { $result[$key] = [$result[$key]]; } $result[$key][] = $value; } return $result; } }
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Form | Folder | 0775 |
|
|
| ActionLogPlugin.php | File | 8.29 KB | 0664 |
|
| Alias.php | File | 3.22 KB | 0664 |
|
| ArrayHelper.php | File | 14.13 KB | 0664 |
|
| Article.php | File | 10.14 KB | 0664 |
|
| Cache.php | File | 4.69 KB | 0664 |
|
| Color.php | File | 1.85 KB | 0664 |
|
| DB.php | File | 15.25 KB | 0664 |
|
| Date.php | File | 5.25 KB | 0664 |
|
| Document.php | File | 13.21 KB | 0664 |
|
| DownloadKey.php | File | 3.92 KB | 0664 |
|
| EditorButtonPlugin.php | File | 5.9 KB | 0664 |
|
| EditorButtonPopup.php | File | 5.53 KB | 0664 |
|
| Extension.php | File | 14.81 KB | 0664 |
|
| FieldsPlugin.php | File | 1001 B | 0664 |
|
| File.php | File | 14.92 KB | 0664 |
|
| Html.php | File | 22.41 KB | 0664 |
|
| HtmlTag.php | File | 4.84 KB | 0664 |
|
| Http.php | File | 4.54 KB | 0664 |
|
| Image.php | File | 29.04 KB | 0664 |
|
| Input.php | File | 4.64 KB | 0664 |
|
| Language.php | File | 985 B | 0664 |
|
| License.php | File | 1.78 KB | 0664 |
|
| MobileDetect.php | File | 748 B | 0664 |
|
| ObjectHelper.php | File | 2.92 KB | 0664 |
|
| Parameters.php | File | 7.27 KB | 0664 |
|
| Php.php | File | 6.81 KB | 0664 |
|
| PluginTag.php | File | 16.31 KB | 0664 |
|
| Protect.php | File | 27.82 KB | 0664 |
|
| RegEx.php | File | 8.02 KB | 0664 |
|
| ShowOn.php | File | 1.44 KB | 0664 |
|
| SimpleCategory.php | File | 1.7 KB | 0664 |
|
| StringHelper.php | File | 22.9 KB | 0664 |
|
| StringReplacer.php | File | 13.66 KB | 0664 |
|
| SystemPlugin.php | File | 15.4 KB | 0664 |
|
| Title.php | File | 2.8 KB | 0664 |
|
| Uri.php | File | 6.06 KB | 0664 |
|
| Variables.php | File | 11.55 KB | 0664 |
|
| Version.php | File | 8.32 KB | 0664 |
|
| Xml.php | File | 1.53 KB | 0664 |
|