]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/Network.php
Merge pull request #11503 from annando/bulk-delivery
[friendica.git] / src / Util / Network.php
index bc374c2bcc348a43834017046d5583be978dd814..af4d18b4ab037301ea3bc5692519cb8334977dae 100644 (file)
@@ -26,6 +26,7 @@ use Friendica\Core\Logger;
 use Friendica\DI;
 use Friendica\Model\Contact;
 use Friendica\Network\HTTPException\NotModifiedException;
+use GuzzleHttp\Psr7\Uri;
 
 class Network
 {
@@ -436,7 +437,7 @@ class Network
         * @param array $parsed URL parts
         *
         * @return string The glued URL.
-        * @deprecated since version 2021.12, use a UriInterface object like GuzzleHttp\Psr7\Uri instead
+        * @deprecated since version 2021.12, use GuzzleHttp\Psr7\Uri::fromParts($parts) instead
         */
        public static function unparseURL(array $parsed)
        {
@@ -473,12 +474,14 @@ class Network
                $parts = parse_url($uri);
                if (!empty($parts['scheme']) && !empty($parts['host'])) {
                        $parts['host'] = idn_to_ascii($parts['host']);
-                       $uri = self::unparseURL($parts);
-               } elseif (strstr($uri, '@')) {
-                       $host = idn_to_ascii(substr($uri, strpos($uri, '@') + 1));
-                       $nick = substr($uri, 0, strpos($uri, '@'));
-
-                       $uri = $nick . '@' . $host;
+                       $uri = Uri::fromParts($parts);
+               } else {
+                       $parts = explode('@', $uri);
+                       if (count($parts) == 2) {
+                               $uri = $parts[0] . '@' . idn_to_ascii($parts[1]);
+                       } else {
+                               $uri = idn_to_ascii($uri);
+                       }
                }
 
                return $uri;