strtolower с русскими буквами
пробовал прописывать setlocale(LC_ALL, 'ru_RU');
непомагает...
Цитата:
Originally posted by Cker
почему может не работать strtolower с русскими буквами?
пробовал прописывать setlocale(LC_ALL, 'ru_RU');
непомагает...
почему может не работать strtolower с русскими буквами?
пробовал прописывать setlocale(LC_ALL, 'ru_RU');
непомагает...
Потому что на не должна работать с кириллицей. Такая вот хохма. Можно свою написать.
Код:
function change_cyr_register($str='',$to='lower')
{
$lower = array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ь','ы','ъ','э','ю','я');
$upper = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ь','Ы','Ъ','Э','Ю','Я');
if($to=='lower') {$pat = &$upper; $rep = &$lower;}
elseif($to=='upper') {$pat = &$lower; $rep = &$upper;}
for($n=0; $n<sizeof($pat); ++$n)
{
$str = preg_replace("/".$pat[$n]."/",$rep[$n],$str);
}
return $str;
}
{
$lower = array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ь','ы','ъ','э','ю','я');
$upper = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ь','Ы','Ъ','Э','Ю','Я');
if($to=='lower') {$pat = &$upper; $rep = &$lower;}
elseif($to=='upper') {$pat = &$lower; $rep = &$upper;}
for($n=0; $n<sizeof($pat); ++$n)
{
$str = preg_replace("/".$pat[$n]."/",$rep[$n],$str);
}
return $str;
}
Спасибо, мне очень пригодилось, только-что сам попался. Под Windows было все нормально, а после загрузки на сервер увидел результат работы и ужаснулся :-). Еще раз спасибо всем участникам форума.