Explorar el Código

convert to punycode for feed on idn hostname

Bernhard Thaler hace 7 años
padre
commit
62958fe9dc
Se han modificado 2 ficheros con 14 adiciones y 0 borrados
  1. 10 0
      include/functions2.php
  2. 4 0
      install/index.php

+ 10 - 0
include/functions2.php

@@ -1776,6 +1776,16 @@
 			$url .= '/';
 		}
 
+		//convert IDNA hostname to punycode if possible
+		if (function_exists("idn_to_ascii")) {
+			$parts = parse_url($url);
+			if (mb_detect_encoding($parts['host']) != 'ASCII')
+			{
+				$parts['host'] = idn_to_ascii($parts['host']);
+				$url = build_url($parts);
+			}
+		}
+
 		if ($url != "http:///")
 			return $url;
 		else

+ 4 - 0
install/index.php

@@ -317,6 +317,10 @@
 			array_push($notices, "CURL and open_basedir combination breaks support for HTTP redirects. See the FAQ for more information.");
 		}
 
+		if (!function_exists("idn_to_ascii")) {
+			array_push($notices, "PHP support for Internationalization Functions is required to handle Internationalized Domain Names.");
+		}
+
 		if (count($notices) > 0) {
 			print_notice("Configuration check succeeded with minor problems:");