Минута "мелкозаписей" в стиле "флудильни" опять в эфире! Сижу сейчас на работе и вдруг напоролся на один старый как моя моторолла баг - "Почему не работает функция strtolower() на php с кириллицей?". Немного посмеялся и поправил на более корректный вариант в данном случае, заодно решил и сюда отписать, вдруг читатель встретился с таким, но, к сожалению, не будет знать как это решить. 

Все дело в том, что strtolower() не работает с многобитными (многобайтными) кодировками (UTF-8 - 16 bit/символ), а кириллица как раз в этом числе - вот почему у вас с английским все вышло, а с русским нет=) 

Для этого специально придумали расширение strtolower(), это собственно mb_strtolower(), и, как альтернатива mb_convert_case(). Как использовать?

$str = 'Наша Строка На Русском';
//аналогично mb_strtoupper()
echo mb_strtolower($str,"UTF-8");

//тут используется одна функция, но направления конвертации определяются
//флагами MB_CASE_LOWER, MB_CASE_UPPER, etc.
echo mb_convert_case($str, MB_CASE_LOWER, "UTF-8");

З.Ы. Я думаю вы уже догадались, что эта функция не одна в своем роде с приставкой mb_, а их много, но есть одно НО: для работы таких функций, на сервере требуется расширение php_mbstring, что не всегда доступно - проблему решает обращение к хостеру или же ваши собственные руки. 

Ну что, думаю хватит, всегда с уважением, Я!


Знаете ли вы?

Что психологический и психиатрический термин "дежа-вю" обозначает "психологический феномен раздвоения сознания во времени, когда появляется ощущение, что происходящее сейчас было уже где-то видено; ложная память".

KDPsite...