]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - application/Url.php
Merge pull request #883 from ArthurHoaro/template/visited-link
[github/shaarli/Shaarli.git] / application / Url.php
index af38c4d9155ed4eb856691c941f26f11714b77be..25a62a8ab3fb5dafa02870ab968418038ef21d37 100644 (file)
@@ -85,6 +85,7 @@ class Url
         'action_type_map=',
         'fb_',
         'fb=',
+        'PHPSESSID=',
 
         // Scoop.it
         '__scoop',
@@ -93,7 +94,10 @@ class Url
         'utm_',
 
         // ATInternet
-        'xtor='
+        'xtor=',
+
+        // Other
+        'campaign_'
     );
 
     private static $annoyingFragments = array(
@@ -220,6 +224,22 @@ class Url
         return $this->toString();
     }
 
+    /**
+     * Converts an URL with an International Domain Name host to a ASCII one.
+     * This requires PHP-intl. If it's not available, just returns this->cleanup().
+     *
+     * @return string converted cleaned up URL.
+     */
+    public function idnToAscii()
+    {
+        $out = $this->cleanup();
+        if (! function_exists('idn_to_ascii') || ! isset($this->parts['host'])) {
+            return $out;
+        }
+        $asciiHost = idn_to_ascii($this->parts['host']);
+        return str_replace($this->parts['host'], $asciiHost, $out);
+    }
+
     /**
      * Get URL scheme.
      *
@@ -232,6 +252,18 @@ class Url
         return $this->parts['scheme'];
     }
 
+    /**
+     * Get URL host.
+     *
+     * @return string the URL host or false if none is provided.
+     */
+    public function getHost() {
+        if (empty($this->parts['host'])) {
+            return false;
+        }
+        return $this->parts['host'];
+    }
+
     /**
      * Test if the Url is an HTTP one.
      *