Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > все в нижний регистр


Автор: DENNN 10.3.2005, 17:29
Чего то я совсем запутался.
Я знаю кодировку той или иной строки. Мне необходимо преобразовать в ней все символы (и eng и рус.) к нижнему регистру. С английскими как всегда проблем нет, с русскими как всегда проблема.smile
Подскажите, есть совсем простой путь через стандартные или проще посимвольно ASCII коды сравнить и преобразовать по ним?

Автор: IZ@TOP 10.3.2005, 17:40
А strtolower неработает? Тогда вроде должно помочь что-то вроде
Код

setlocale(LC_ALL, "ru_RU.CP1251");

Автор: DENNN 10.3.2005, 19:59
thanks, завтра попробую

Автор: DENNN 10.3.2005, 20:13
Да-а-а. Почитал я http://ru3.php.net/manual/ru/function.setlocale.php комментерии и решил, что лучше побайтно таблицу перекодировки составить. Мало того, что переносимость теряется (на другой ОС локаль может записыватся совершенно иначе), так еще куча проблем возникает: чтение из БД, неверная интерпретация плавающих чисел из GET/POST, изменения применяется глобально, а не только в рамках вызвавшего потока и т.п. Аж волосы дыбом встают, так все запущенно. smile

Автор: Mal Hack 10.3.2005, 20:36
DENNN
Код
<?php
function stringUpDown($text, $up = true){

   # Convert values from Lower to Upper
   $arrayLower=array('�'
   ,'�','�','�','�','�'
   ,'�','�','�','�'
   ,'�','�','�','�'
   ,'�','�','�','�','�'
   ,'�','�','�','�');
  
   $arrayUpper=array('�'
   ,'�','�','�','�','�'
   ,'�','�','�','�'
   ,'�','�','�','�'
   ,'�','�','�','�','�'
   ,'�','�','�','�');

if($text == ''){
   return $text;
}

if($up != true) {
   $text=strtolower($text);
   $text=str_replace($arrayUpper, $arrayLower, $text);
}else{
   $text=strtoupper($text);
   $text=str_replace($arrayLower, $arrayUpper, $text);
}
   return($text);
} #end of function
?>

Вместо знаков вопроса соответтствующий массив из букв нужного регистра. smile Думаю с алдгоритмом разберешься. Взято из FAQ PHP.

Автор: DENNN 10.3.2005, 21:10
Mal Hack, спасибо - так видимо и сделаю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)