Функция php strtolower не работает
- Статьи, заметки и прочее>
- Сайтология>
- программирование >
- Функция php strtolower не работает
В процессе работы с текстовыми переменными возникает необходимость приведения их содержания в нижний регистр. Но вроде бы простая операция, которая обычно работает на одном сервере вдруг не работает на другом.
Что делать если php функция strtolower не работает?
Ответ обычно прост: причина - не правильно установленна "родная" кодировка, что, в итоге, приводит к потере русских букв в результирующей переменной.
Решение напрашивается само собой:
// устанавливаем русскую кодировку
setlocale(LC_ALL, "ru_RU.CP1251");
// переводим в нижний регистр
$string = strtolower( $string );
setlocale(LC_ALL, "ru_RU.CP1251");
// переводим в нижний регистр
$string = strtolower( $string );
Но есть и альтернативный путь. Более медленно, но намного надежнее в результате:
//заменить все вхождения соответсвующими символами
$string = strtr( $string, 'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ', 'йцукенгшщзхъфывапролджэячсмитьбюё' );
$string = strtr( $string, 'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ', 'йцукенгшщзхъфывапролджэячсмитьбюё' );
- Статьи, заметки и прочее>
- Сайтология>
- программирование >
- Функция php strtolower не работает