Strtolower php Использование strtolower, не работает для кириллицы , примеры
Сегодня разберем функцию strtolower, которая преобразует строку в нижний регистр. Т.е. все буквы делает строчными в php. Попробуем разобраться в ошибках связанных с функцией strtolower, примеры strtolower, напишем свою функцию для кириллицы преобразующие большие буквы в маленькие, но не только о strtolower, но и коснемся mb-strtolower.
Естественно нужно начать с определения даннйо функции:
Все о функции strtolower
- Что такое strtolower
- Использование strtolower для латиницы:
- Использование strtolower для кириллицы:
- Strtolower не работает для кириллицы
- Собственная функция Strtolower для кириллицы!
- Собственная функция Strtolower для кириллицы и латиницы!
Онлайн функция Strtolower для текста!- Скачать можно здесь
Что такое strtolower
С самого начала -дадим определение : "что такое strtolower":Синтаксис функции strtolower
Разбор синтаксиса функции strtolower
strtolower - название функции.
string - тип переменной, которую может обработать функция strtolower - строка
$string - переменная.
: string - тип возвращаемого значения строка
Использование strtolower:
Самое удобное, поместить в переменную текст, который пропускается через функцию и получается соответствующая строка.
Ну и далее оборачиваем переменную функцией strtolower:
И выводим результат с помощью echo
Пример использования strtolower для латиницы:
Для того, чтобы показать пример использования функции strtolower - нам понадобится текст на английском:
Далее применим к данной строке strtolower с использованием функции echo :
Результат применения strtolower к английскому тексту, который написан "ПРОПИСНЫМИ"
Как видим - наши "ПРОПИСНЫЕ" буквы на английском стали "строчными".
После этого можем переходить к кириллице!
Использование strtolower для кириллицы:
Опять поступаем со строкой, как в выше идущем пункте:
Расположим данный вывод прямо здесь и получим:
Мы видим, что ничего у нас не произошло…
Почему не сработала функция strtolower
Не буду подробно останавливаться на этом пункте, просто скажу, что существует разница между кодировками и наборами алфавитов:Насколько я понимаю, что проблема в данном случае с кодировкой utf-8 для кириллицы! Дело в том, что кириллица в данной кодировке имеет не один символ а два... и strtolower просто не понимает, что от него хотят...
Чтобы показать в живую, чем отличается кириллица от латиницы:
напишем var_dump ('МИР')string(6) "МИР"
string(3) "VAR"
Strtolower не работает для кириллицы
Если функция Strtolower не сработала для кириллицы - что делать!?
Вместо strtolower, можно использовать mb_strtolower - что означает mbНо если например мы будем использовать данную функцию в таком виде:
То получим такой результат:
Смотрим, что у нас в итоге получилось:
Собственная функция Strtolower для кириллицы!
Сталкивались с Strtolower для кириллицы!? Или может вы использовали mb-strtolower для кириллицы!? Эти функции работали и как впечатление!?
Когда в последний раз меня вывела из себя функция mb-strtolower – оказывается – эту хрень еще и подключать надо! Какая важная фифа, что она может даже быть и отключенная! Не то, что я не могу разобраться, как её включить – но просто это так достало, что просто нет тех слов цензурных слов, которые могли бы выразить все то, что я им хочу сказать!
Сделаем собственную функцию Strtolower для кириллицы!
Нам нужна такая функция Strtolower для кириллицы, чтобы она работала всегда и везде и чтобы больше никогда я не встречался с этой проблемой – мы просто напишем собственную функцию Strtolower для кириллицы!
Погнали!
Нам понадобится массив, который представляет из себя ключ – Большая кириллическая буква(верхний регистр = «ПРОПИСНЫЕ»), значение маленькая кириллическая буква(нижний регистр = «строчные»)
$ru_array = array('А' => 'а','Б' => 'б','В' => 'в','Г' => 'г','Д' => 'д', 'Е' => 'е','Ё' => 'ё','Й' => 'й','Ж' => 'ж','З' => 'з','И' => 'и','К' => 'к','Л' => 'л','М' => 'м','Н' => 'н','О' => 'о','П' => 'п','Р' => 'р','С' => 'с','Т' => 'т','У' => 'у','Ф' => 'ф','Х' => 'х','Ц' => 'ц','Ч' => 'ч','Ш' => 'ш','Щ' => 'щ','Ъ' => 'ъ','Ы' => 'ы','Ь' => 'ь','Э' => 'э','Ю' => 'ю','Я' => 'я');
Еще нам понадобится функция strtr – которая преобразует найденные ключи в значения!
function examplestrtolower($str) { $ru_array = array('А' => 'а','Б' => 'б','В' => 'в','Г' => 'г','Д' => 'д', 'Е' => 'е','Ё' => 'ё','Й' => 'й','Ж' => 'ж','З' => 'з','И' => 'и','К' => 'к','Л' => 'л','М' => 'м','Н' => 'н','О' => 'о','П' => 'п','Р' => 'р','С' => 'с','Т' => 'т','У' => 'у','Ф' => 'ф','Х' => 'х','Ц' => 'ц','Ч' => 'ч','Ш' => 'ш','Щ' => 'щ','Ъ' => 'ъ','Ы' => 'ы','Ь' => 'ь','Э' => 'э','Ю' => 'ю','Я' => 'я'); return strtr($str,$ru_array ); }
И обработаем дальше уже нашей функцией Strtolower для кириллицы
echo examplestrtolower($text);
Результат работы собственной функции для кириллицы!
Собственная функция Strtolower для кириллицы и латиницы!
Пойдем дальше! Чем каждый раз вспоминать,какая функция работает там, работает сям! Сделаем функцию для кириллицы и латиницы, дарю:
function my_strtolower($strr) { $ru_en_atray = array('А' => 'а','Б' => 'б','В' => 'в','Г' => 'г','Д' => 'д', 'Е' => 'е','Ё' => 'ё','Й' => 'й','Ж' => 'ж','З' => 'з','И' => 'и','К' => 'к','Л' => 'л','М' => 'м','Н' => 'н','О' => 'о','П' => 'п','Р' => 'р','С' => 'с','Т' => 'т','У' => 'у','Ф' => 'ф','Х' => 'х','Ц' => 'ц','Ч' => 'ч','Ш' => 'ш','Щ' => 'щ','Ъ' => 'ъ','Ы' => 'ы','Ь' => 'ь','Э' => 'э','Ю' => 'ю','Я' => 'я' , 'A'=> 'a', 'B'=> 'b','C'=> 'c','D'=> 'd','E'=> 'e','F'=> 'f','G'=> 'g','H'=> 'h','I'=> 'i','J'=> 'j','K'=> 'k','L'=> 'l','M'=> 'm','N'=> 'n','O'=> 'o','P'=> 'p','Q'=> 'q','R'=> 'r','S'=> 's','T'=> 't','U'=> 'u','V'=> 'v','W'=> 'w','X'=> 'x','Y'=> 'y','Z'=> 'z'); return strtr( $strr , $ru_en_atray ); }
Теперь давайте испытаем, сразу на двух текстах... что мы сделаем!?
Выведем наши текста таикм образом:
Результат работы собственной функции strollower
this is a test text that will illustrate the behavior of the strtolower
Онлайн функция Strtolower для текста!
Теперь на нашем сайте вы можете привести весь текст, который так или иначе написан с включением больших(прописных) букв, превратить в текст написанный строчными, т.е. маленькими!
Как работает онлайн Strtolower
В поле ввода пишем или вставляем текст ПРОПИСНЫМИ! И нажимаем отправить! И вы получите результат! Пока только Русский и английский языки!
strtolower strtolower php mb strtolower mb strtolower php strtolower не работает strtolower utf strtolower кириллица strtolower utf strtolower php кириллица php strtolower utf strtolower php не работает php strtolower русские символы mb strtolower utf mb strtolower не работает с русскими буквами strtolower не работает с русскими буквами utf php mb strtolower utf функция strtolower не работает с кириллицей