2017-08-08 46 views
2

我一直在试图寻找一个解决方案来验证用php域,域是:验证一个俄语域PHP

XN ---- 9sbeid4cgu7b.xn - p1ai

当我把它粘贴到浏览器中它被转换成俄语字符和域是有效的,我不能

$re = '/^(?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63}$/m'; 
$is_valid = preg_match_all($re, $domain, $matches, PREG_SET_ORDER, 0); 

验证它的任何帮助,将不胜感激

+2

[filter_var](http://php.net/filter_var)与[FILTER_VALIDATE_URL](http://php.net/manual/en/filter.filters.validate.php)? –

+0

那一定是我见过的最奇怪的有效域名 – Martijn

+0

大声笑..奇怪的怪物之一..大声笑, – smzapp

回答

0

您可以使用idn_to_utf8将Unicode域名从IDNA ASCII兼容格式转换为纯Unicode(使用UTF-8编码)。

+0

PHP 5.6的任何解决方案? –

+0

我使用PHP7和stil goit这个错误:调用未定义的函数idn_to_utf8 – user10089632

+0

我切换到PHP 7.0.20,仍然是相同的错误 –