<b>Warning</b>: preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Compilation failed: invalid UTF-8 string at offset 11 in <b>/var/www/inel/data/www/inel.pro/modules/teams/ajax/regcheckfields.php</b> on line <b>22</b>
Код:
iconv('utf8','cp1251',$field);
if(!empty($field)){
if(preg_match("#^[a-z0-9_ а-я-]{2,15}$#iu",$field)){echo "okay";}else{echo "Поле должно быть длиной от 2 до 25 символов.";}
}else{echo "Поле не заполнено!";}
Убираю "u", ошибка не появляеться но и проверка тоже...
Проверка заключается в том что бы запретить спец символы кроме "_" и "-".
Спустя 14 минут, 15 секунд (21.01.2012 - 20:51) dadli написал(а):
так ?
$field = 'aaусловa';
$field = iconv('utf-8','cp1251',$field);
if(!empty($field)){
if(preg_match("#^[a-z0-9_ а-я-]{2,15}$#i",$field)){echo "okay";}else{echo "Поле должно быть длиной от 2 до 15 символов.";}
}else{echo "Поле не заполнено!";}
Спустя 30 минут, 36 секунд (21.01.2012 - 21:21) Winston написал(а):
Цитата (cyberside @ 21.01.2012 - 19:36) |
iconv('utf8','cp1251',$field); |
Зачем ты перекодируешь из Win в utf?
Если ты уже и перекодировал то нужно убрать u, т.к. он для юникода
А регулярку можно так переписать
#^[\wа-яё-]{2,15}$#i
Спустя 3 минуты, 42 секунды (21.01.2012 - 21:25) cyberside написал(а):
Winston, спасиб понял, просто ajax посылает в utf8 необходимо перекодировать что бы избегать крякозябр.
Спустя 5 минут, 42 секунды (21.01.2012 - 21:31) Winston написал(а):
А у тебя все в CP1251? Нафига?
Спустя 55 секунд (21.01.2012 - 21:31) Stasonix написал(а):
не используйте эту win1251 вообще в любых проектах, это утопия, можете мне возражать, но это мое мнение. Везде где только можно прописывайте utf8, я бы вообще отдельную тему с пометкой ВАЖНЫЕ создал с темой куда что прописывать в плане кодировки при создании проэкта, а то реально создают, а потом постят. (признаю, сам постил).