Проблема с регистром русских букв

Статус
В этой теме нельзя размещать новые ответы.

RzD

Создатель
Регистрация
17 Сен 2008
Сообщения
18
Реакции
0
Не получается менять регистр русских букв. Через strtolower ноль эффекта..меняет только у английских букв. Помогите плиз..
 
Для перевода символов в нижний регистр используется функция strtolower(), а в верхний - strtoupper(:(

$str = strtolower ($str);

$str = strtoupper ($str);

При изменении регистра русских букв могут возникнуть проблемы, избежать которых поможет правильная настройка локали. Локалью называется совокупность настроек системы, таких как формат даты и времени, язык, кодировка. Для установки локали используется функция SetLocale(), которой следует передать два параметра - категорию устанавливаемых параметров и локаль. Категория может быть следующей:
LC_TYPE - используется для установки локали перевода символов нижний/верхний регистры.
LC_NUMERIC - используется для установки локали для функции форматирования дробных чисел.
LC_TIME - помогает настроить форматированный вывод даты и времени.
LC_ALL - устанавливает все вышеперечисленные режимы.

Любая локаль, установленная в системе, имеет свое уникальное имя, по которому можно к ней обратиться. Категория LC_TYPE устанавливает локаль для преобразования символов. Имя активизированной локали для катагории LC_TYPE содержится в элементе с ключом LAND массива GLOBALS (эта переменная окружения LAND). В некоторых случаях - это ru_RU.koi8. Для корректного преобразования символов нужно выполнить функцию:

setlocale(LC_ALL, "ru_RU.CP1251");
echo strtolower("TEST_ТЕСТ");

Для просмотра ссылки Войди или Зарегистрируйся
 
  • Нравится
Реакции: RzD
если кодировка utf-8, то mb_strtolower
PHP:
mb_internal_encoding("UTF-8");
echo mb_strtolower("СЛово");
если локаль другая то указать локаль и конвертировать:
PHP:
setlocale (LC_ALL, 'ru_RU.CP1251');
echo strtolower("СЛово");
если такая локаль не поддерживается сервером тогда можно конвертировать в utf-8 конвертировать и обратно
PHP:
mb_internal_encoding("UTF-8");
echo iconv("UTF-8", "CP1251", mb_strtolower(iconv("CP1251", "UTF-8", "СЛово")));
если мультибайтные функции не поддерживаются, тогда просто менять большие буквы на маленькие, тут ещё варианты и примеры


или просто в css стиле указать регистр букв
HTML:
.strtolower {
    text-transform: lowercase;
}
 
  • Нравится
Реакции: RzD
всем спасибо, получилось =)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху