[PHP] регулярку подправить не получается

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

[PHP] регулярку подправить не получается

Непрочитанное сообщение Alex Keda » 2011-10-26 14:34:18

Код: Выделить всё

/^([a-z0-9абвгдеёжзийклмнопрстуфхцчшщьыъэюя]([a-z0-9абвгдеёжзийклмнопрстуфхцчшщьыъэюя\-]*[a-z0-9абвгдеёжзийклмнопрстуфхцчшщьыъэюя])*\.)+[a-zрф]{2,4}$/ui
это проверка доменного имени на валидность.
всё хорошо, но, автор не учёл что доменное имя не может быть короче трёх символов (потому как все двухбуквенники зарезервированы), и, несмотря на то что такие имена есть - заюзать их нельзя.
также, оно не может быть длинней 63 символов

невкурю, куда добавить {3,63} чтоб правильно чекало...
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hedgehog
сержант
Сообщения: 220
Зарегистрирован: 2010-01-26 11:47:05
Откуда: Kharkiv, Ukraine
Контактная информация:

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение hedgehog » 2011-10-26 14:39:18

вместо {2,4} , только в этом случае "рф" маловато смысла имеет

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение hizel » 2011-10-26 14:49:03

автор русофоб, что национальные домены только в РФ штоле?

Код: Выделить всё

/^([\w\d]([\w\d\-]*[\w\d]){2,62}\.)+\w{2,4}$/ui
держи и не греши
Последний раз редактировалось hizel 2011-10-26 14:51:08, всего редактировалось 1 раз.
Причина: {2,62}
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение Alex Keda » 2011-10-26 16:05:44

изначально, их нигде не было, вообще =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение Alex Keda » 2011-11-01 9:32:42

Код: Выделить всё

srv0# php /tmp/b.php
ERR
srv0# cat /tmp/b.php
<?php

$domain = 'майгимгим.рф';

if(preg_match('/^([\w\d]([\w\d\-]*[\w\d]){2,62}\.)+\w{2,4}$/ui',$domain)){
        echo "OK";
}else{
        echo "ERR";
}


?>

srv0# 
ы?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение hizel » 2011-11-01 11:10:13

php гумно

Код: Выделить всё

hizel@wnight:~$ php 1.php
OKOK2
hizel@wnight:~$ cat 1.php
<?php

$regexp = '/^([\w\d\pL]([\w\d\-\pL]*[\w\d\pL]){2,62}\.)+\w{2,4}$/ui';
$domain = 'майгимгим.рф';
$domain2 = 'привет.лисик.рф';

if(preg_match($regexp,$domain)){
                echo "OK";
}else{
                echo "ERR";
}

if(preg_match($regexp,$domain2)){
                echo "OK2";
}else{
                echo "ERR2";
}

?>
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение Alex Keda » 2011-11-01 11:32:16

Код: Выделить всё

srv0# cat > /tmp/c.php
<?php

$regexp = '/^([\w\d\pL]([\w\d\-\pL]*[\w\d\pL]){2,62}\.)+\w{2,4}$/ui';
$domain = 'майгимгим.рф';
$domain2 = 'привет.лисик.рф';

if(preg_match($regexp,$domain)){
                echo "OK";
}else{
                echo "ERR";
}

if(preg_match($regexp,$domain2)){
                echo "OK2";
}else{
                echo "ERR2";
}

?>

^C

srv0# php /tmp/c.php 
ERRERR2
srv0# 
однако....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение hizel » 2011-11-01 11:45:07

ээ

Код: Выделить всё

$ php -v
PHP 5.3.8-pl0-gentoo (cli) (built: Nov  1 2011 12:04:59) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

Код: Выделить всё

$ locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение Alex Keda » 2011-11-01 14:52:41

у меня 5.2
локаль utf8
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [PHP] регулярку подправить не получается

Непрочитанное сообщение hizel » 2011-11-01 16:05:12

Код: Выделить всё

/^([\d\pL]([\d\-\pL]*[\d\pL]){2,62}\.)+\pL{2,4}$/ui
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.