|
|
|
| Как всегда мучаюсь из-за UTF-8!!! :(
На этот раз проверка кол-ва символов!
Т.е. мне нужно проверить, чтобы пользователь не вводил большее количество символов в поле чем разрешено! Но из-за UTF-8 все не так работает как надо!
Если поле text например заполнено русскими символами, то будет введено допустим 50 символов, а с проверкой
if ( strlen ( $_POST[text] ) > 50 ) $error = true;
|
он будет выдавать ошибку, даже когда только 40 введено, потому как в UTF-8 один символ кодируются несколькими!!!
Как решить проблему? | |
|
|
|
|
|
|
|
для: Maxam
(19.01.2008 в 18:06)
| | mb_strlen | |
|
|
|
|
|
|
|
для: bronenos
(19.01.2008 в 18:12)
| | Пишет:
Fatal error: Call to undefined function mb_strlen() in...
Может у меня какой библиотеки не хватает? | |
|
|
|
|
|
|
|
для: Maxam
(19.01.2008 в 18:38)
| | а iconv? | |
|
|
|
|
|
|
|
для: Maxam
(19.01.2008 в 18:38)
| | Попробуйте iconv_strlen().
В противном случае
<?php
function utf8_strlen($string)
{
return strlen(preg_replace('/./us', '.', $string));
}
?>
|
| |
|
|
|
|
|
|
|
для: Maxam
(19.01.2008 в 18:06)
| | <input type='text' maxlength='50' name='name' /> в данной конкретной ситуации | |
|
|
|
|
|
|
|
для: KPETuH
(19.01.2008 в 20:58)
| | ><input type='text' maxlength='50' name='name' /> в данной конкретной ситуации
Как дополнительный вариант, но на стороне сервера все равно лучше выполнять проверку. | |
|
|
|