Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2018, 09:49   #1
TYMON
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 80
По умолчанию Подсчитать точное количество символов в строке

Здравствуйте. Задал код на подсчет количества символов вводимых в поле input, после чего при определенном условии происходит действие. Но считает он точное количество, только если введены английские буквы или цифры, если же российская раскладка, то считается некорректно. (функция preg_replace обязательна по условию, чтобы очищать некорректные символы и пробелы)
Подскажите какую функцию или операцию необходимо сделать для точного подсчета символов будь-то русский алфавит или английский?

Код:
$str = trim($post['search']);
$search = preg_replace("/[^a-A-Z_0-9\+абвгдеёжзийклмнопрстуфчхцшщъьыэюяАБВГДЕЁЖЗИЧЙКЛМНОПРСТУФХЦШЩЬЪЫЭЮЯ]/", "", $str);
$len = strlen ($search);
if ($len <= 3) {
//условие
}
TYMON вне форума Ответить с цитированием
Старый 20.03.2018, 10:57   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

применить модификатор u
Код:
$search = preg_replace("/[^0-9a-zA-Zа-яА-ЯёЁ]/iu", "", $str);
ADSoft вне форума Ответить с цитированием
Старый 01.04.2018, 02:52   #3
Ottava
Форумчанин
 
Регистрация: 05.09.2017
Сообщений: 157
По умолчанию

Используй mb_strlen, strlen считает байты, а не символы, поэтому она некорректно работает с многобайтными кодировками (UTF-8 и тп).
Безопасность с Content Security Policy
Ottava вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать количество символов в каждой строке. Anonim123 Паскаль, Turbo Pascal, PascalABC.NET 3 21.05.2014 13:23
подсчитать количество символов в самой короткой группе, в строке, состоящей из групп нулей и единиц misher Помощь студентам 6 22.10.2012 09:53
Дана строка. В строке удалить символ двоеточие и подсчитать количество удаленных символов.в делфи _Алексей_ Помощь студентам 3 29.04.2012 15:37
Дана строка. В строке удалить символ двоеточие ":" и подсчитать количество удаленных символов.в делфи _Алексей_ Помощь студентам 6 20.04.2012 16:12
Подсчитать количество содержащихся в строке символов С Doublefaced Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 31.05.2009 12:13