Strtoupper не работает с Русским текстом

jeka!

Просто Member
Strtoupper не работает с Русским текстом

PHP:
$catname = "развлечения"
$catname{0} = strtoupper($catname{0});
echo $catname;
Почему то текст остается без изменений, англ. текст изменяется.
Как это можно исправить?
 

Spriter

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

print strrtoupper("Привет!");
 

urmach

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

print strrtoupper("Привет!");
Ужас.

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

Так прошче, товаришч
 

SiMM

Новичок
> Так прошче, товаришч
Ужос.
PHP:
function my_strtoupper($str){ // for Windows-1251
  return str_replace('ё','Ё',preg_replace('#[а-я]#se','chr(ord("$0")-32)',$str));
}
;)
 
Сверху