Add Utils\Url class

This commit is contained in:
Hypolite Petovan 2020-06-13 13:16:25 -04:00
parent 10edbea99e
commit a402fbdf5d
1 changed files with 38 additions and 0 deletions

38
src/classes/Utils/Url.php Normal file
View File

@ -0,0 +1,38 @@
<?php
namespace Friendica\Directory\Utils;
/**
* URL related static utilities
*
* @author Hypolite Petovan <hypolite@mrpetovan.com>
* @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 : '');
}
}