+ /**
+ * 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);
+ }
+