From a402fbdf5d53107423287237014ab89eae089d12 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 13 Jun 2020 13:16:25 -0400 Subject: [PATCH] Add Utils\Url class --- src/classes/Utils/Url.php | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/classes/Utils/Url.php diff --git a/src/classes/Utils/Url.php b/src/classes/Utils/Url.php new file mode 100644 index 0000000..a292c6a --- /dev/null +++ b/src/classes/Utils/Url.php @@ -0,0 +1,38 @@ + + * @package Friendica\Directory\Utils + */ +class Url +{ + /** + * Mirror of parse_url function, puts components back together to form a URI. + * + * @param array $parsed + * @return string + */ + public static function unparse(array $parsed) + { + $scheme = $parsed['scheme'] ?? null; + $user = $parsed['user'] ?? null; + $pass = $parsed['pass'] ?? null; + $userinfo = $pass !== null ? "$user:$pass" : $user; + $port = $parsed['port'] ?? null; + $query = $parsed['query'] ?? null; + $fragment = $parsed['fragment'] ?? null; + $authority = ($userinfo !== null ? $userinfo . "@" : '') . + ($parsed['host'] ?? '') . + ($port ? ":$port" : ''); + + return (!empty($scheme) ? $scheme . ":" : '') . + (strlen($authority) ? "//" . $authority : '') . + ($parsed['path'] ?? '') . + (strlen($query) ? "?" . $query : '') . + (strlen($fragment) ? "#" . $fragment : ''); + } +}