PHP - функции регистра не работают strtolower, strtoupper, не работает uc_first
Функции strtolower, strtoupper, uc_first корректно преобразуют буквы английского алфавита, однако с русскими буквами не работают. Скорее всего, дело в кодировке.
1. если файлы в кодировке cp1251 пробуем установить соответствующую локаль:
setlocale(LC_ALL, ‘ru_RU.CP1251′);
Для файлов в кодировке UTF-8 следует использовать мультибайтовые функции mb_strtolower, mb_strtoupper… Однако, не каждый хостинг поддерживает mb-расширение.
$var = mb_strtolower($var,'UTF-8') // не забываем указать кодировку в функции mb_strolower, mb_strtoupper
2. Если установка локали не помогла, можно написать собственную функцию:
function my_strtolower ($string){
$str=strtolower($string);
if (strtolower ('Ц')!='ц') $string = strtr(
$string,
'АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ',
'абвгдеёжзийклмнорпстуфхцчшщъьыэюя');
return $string;
};
По аналогии, если требуется, можно написать собственные функции вместо strtoupper и uc_first
ps. На мой взгляд, все-таки лучше разобраться с настройками хостинга..
Метки: php
а зачем код $str=strtolower($string) если $str больше не будет нигде использоваться?
[vseprosto.com]
3feudalism…
…