Настройка локали

Опубликовал: Saturday, April 21, 2024 в категории HTML | Пока нет комментариев

При изменении регистра русских букв может возникнуть проблема. Чтобы ее избежать, необходимо правильно настроить локаль. Локалью называют сово- купность локальных настроек системы.

Для установки локали используется функция setlocale(). Функция имеет следующий формат:

setlocale(<Категория>, <Локаль>);

Параметр <Категория> может принимать следующие значения:

? LC_ALL — устанавливает локаль для всех режимов;

? LC_COLLATE — для сравнения строк;

? LC_CTYPE — для перевода символов в нижний или верхний регистр;

? LC_MONETARY — для отображения денежных единиц;

? LC_NUMERIC — для форматирования дробных чисел;

? LC_TIME — для форматирования вывода даты и времени.

Например:

$str = "очень длинная строка";

setlocale(LC_CTYPE, "ru_RU.CP1251"); //

echo strtoupper($str); // Выведет: ОЧЕНЬ ДЛИННАЯ СТРОКА

Пример для кодировки UTF-8:

setlocale(LC_CTYPE, ‘ru_RU.UTF-8’); // в UNIX setlocale(LC_ALL, ‘Russian_Russia.65001’); // в Windows Можно указать сразу несколько локалей через запятую:

setlocale(LC_ALL, "ru_RU.CP1251", "Russian_Russia.1251");

setlocale(LC_ALL, ‘ru_RU.UTF-8’, ‘Russian_Russia.65001’);

О БРАТИТЕ ВНИМ АНИЕ

В операционной системе Windows нельзя настроить категорию LC_CTYPE для кодировки UTF-8. Это связано с особенностями операционной системы Windows. Кроме того, в PHP 6 функция setlocale() помечена как уста- ревшая.

5.15.3. Функции для работы с символами

? chr(<Код символа>) возвращает символ по указанному коду:

echo chr(81); // Выведет: Q

? ord(<Символ>) возвращает код указанного символа:

echo ord("Q"); // Выведет: 81

5.15.4. Поиск и замена в строке

? strpos() ищет подстроку в строке. Возвращает номер позиции, с которой начинается вхождение подстроки в строку. Если подстрока в строку не входит, то функция возвращает false. Функция зависит от регистра сим- волов. Имеет следующий формат:

strpos(<Строка>, <Подстрока>, [<Начальная позиция поиска>]);

Если начальная позиция не указана, то поиск будет производиться с на-

чала строки:

if (strpos("Привет", "При") !== false) echo "Найдено";

// Выведет: Найдено

else echo "Не найдено";

? str_replace() производит замену всех вхождений подстроки в строку на другую подстроку и возвращает результат в виде новой строки. Функция

не изменяет исходную строку и зависит от регистра символов. Имеет сле-

дующий формат:

str_replace(<Подстрока для замены>, <Новая подстрока>, <Строка>, [<Количество произведенных замен>]);

Если в необязательном четвертом параметре указать переменную, то в ней будет сохранено количество произведенных замен. Например:

$str = ‘Привет, Петя’;

$count = 0;

$str = str_replace(‘Петя’, ‘Вася’, $str, $count);

echo $str; // Выведет: Привет, Вася

echo $count; // Выведет: 1

В качестве параметра можно также передать массив. Например:

$arr = array(‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’, ‘&’, ‘*’,

‘(‘, ‘)’, ‘_’, ‘+’, ‘=’, ‘.’);

echo str_replace($arr, ”, ‘Текст !@#$%^&*()_+=. текст’);

// Выведет: Текст текст

Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *