Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не корректно работает
Форумы портала PHP.SU » » Вопросы новичков » Не корректно работает

Страниц (1): [1]
 

1. event - 28 Февраля, 2016 - 20:47:43 - перейти к сообщению
Всем привет. Есть готовая регулярка, для проверки валидности домена и так же в ней есть возможность проверки кириллического домена. Но почему-то вот кириллические домены проверять не хочет.

PHP:
скопировать код в буфер обмена
  1. $url = "http://домен.рус";     
  2.        
  3. if (!preg_match("~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}" . "(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|". "org|mil|edu|arpa|gov|biz|info|рус|media|aero|inc|name|[a-z]{2})|(?!0)(?:(?". "!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(:[0-9]{1,5})?(?:/[а-яa-z0-9.,_@%\(\)\*&". "?+=\~/-]*)?(?:#[^ '\"&<>]*)?$~i", $url)) {
  4.         die("error");
  5. }


Где ошибка? В чем проблема?
2. Viper - 28 Февраля, 2016 - 20:55:16 - перейти к сообщению
event пишет:
кириллические домены проверять не хочет
punycode
3. Мелкий - 28 Февраля, 2016 - 20:55:34 - перейти к сообщению
Покажите в регулярке то место, почему вы решили, что она умеет IDN?
Да и вообще, что она пригодна для валидации домена.
4. event - 28 Февраля, 2016 - 21:08:19 - перейти к сообщению
Viper пишет:
event пишет:
кириллические домены проверять не хочет
punycode


Сделал, но все равно не работает.

PHP:
скопировать код в буфер обмена
  1. include_once("idna_convert.class.php");
  2.  
  3. $idn = new idna_convert(array('idn_version'=>2008));
  4.  
  5. $url = "домен.рф";
  6.  
  7. $url = isset($url) ? stripslashes($url) : '';
  8. $url = (stripos($url, 'xn--')!==false) ? $idn->decode($url) : $idn->encode($url);
  9.  
  10.  
  11.  
  12. if (!preg_match("~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}" . "(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|". "org|mil|edu|arpa|gov|biz|info|рус|media|aero|inc|name|[a-z]{2})|(?!0)(?:(?". "!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(:[0-9]{1,5})?(?:/[а-яa-z0-9.,_@%\(\)\*&". "?+=\~/-]*)?(?:#[^ '\"&<>]*)?$~i", $url) && !empty($url)) {
  13.         error("Ошибка", "Вы ввели не валидный домен в поле #" . $i . ", вернитесь <a href=\"javascript:history.go(-1)\">назад</a> пожалуйста.");
  14. }
  15.  


PS: punycode - 100 процентов работает. Проверил.
5. Viper - 29 Февраля, 2016 - 01:50:18 - перейти к сообщению
event пишет:
Сделал, но все равно не работает.

как-то не вяжется с
event пишет:
PS: punycode - 100 процентов работает. Проверил.

Вы либо кодированный, либо не кодированный проверяете.

 

Powered by ExBB FM 1.0 RC1