This commit is contained in:
2024-01-28 11:27:52 +07:00
parent 736f5b9c4e
commit 9b6cd189ea
23 changed files with 223 additions and 107 deletions

47
inc/Hura8/Url.php Normal file
View File

@@ -0,0 +1,47 @@
<?php
namespace Hura8;
class Url
{
public static function parse($url) {
$data = parse_url($url);
$default = [
'scheme' => '',
'host' => '',
'port' => '',
'user' => '',
'pass' => '',
'path' => '',
'query' => [],
'fragment' => '',
];
foreach ($data as $key => $value) {
if(isset($default[$key])) {
$default[$key] = ($key == 'query') ? self::parsedQuery($value) : $value;
}
}
return $default;
}
public static function parsedQuery($query = '') {
if(!$query) return [];
$result = [];
$parts = explode("&", $query);
foreach ($parts as $part) {
$el = explode("=", $part);
if(sizeof($el) != 2) continue;
$cleaned_key = preg_replace("/[^a-z0-9_\-\.]/i", '', $el[0]);
$cleaned_value = preg_replace("/[^a-z0-9_\.\-;&]/i", '', $el[1]);
$result[$cleaned_key] = $cleaned_value;
}
return $result;
}
}