PHP strtolower и UTF-8

PHP-функция strtolower () не может корректно работать с кириллицей в кодировке UTF-8, что есть очень нехорошо. Вот решение:

function strtolower_utf8(string $text){
 $text = mb_convert_case($text, MB_CASE_LOWER, "UTF-8");
 return $text;
}

Для корректной работы функции на сервере должна присутствовать библиотека mb_string.

Чуть более громоздкое решение без испоьлзования mb_string:

function strtolower_ru($text) {
 $alfavitlover = array('ё','й','ц','у','к','е','н','г', 'ш','щ','з','х','ъ','ф','ы','в', 'а','п','р','о','л','д','ж','э', 'я','ч','с','м','и','т','ь','б','ю');
 $alfavitupper = array('Ё','Й','Ц','У','К','Е','Н','Г', 'Ш','Щ','З','Х','Ъ','Ф','Ы','В', 'А','П','Р','О','Л','Д','Ж','Э', 'Я','Ч','С','М','И','Т','Ь','Б','Ю');
 return str_replace($alfavitupper,$alfavitlover,strtolower($text));
} 

Поблагодарить автора

5 Responses to PHP strtolower и UTF-8

  1. Ребята, используйте ф-цию которая работает с ЮТВ кодировками mb_strtoupper и mb_strtolower, единственно для работы с ней в php.ini должна быть загрузка модуля extension=php_mbstring.dll

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>