logo search
Vvedenie_v_Veb_programmirovanien_2 / Vvedenie_v_Veb_programmirovanien_2

Установка локальных настроек

Локалью будем называть совокупность таких локальных настроек системы, как формат даты и времени, язык, кодировка.

Для установки локали используется функция SetLocale():

SetLocale(string $category, string $locale)

Функция устанавливает текущую локаль, с которой будут работать функции преобразования. Параметр $category определяет класс функций, на которые влияет локаль и может принимать следующие строковые значения:

LC_CTYPE — активизирует указанную локаль для функций перевода в верхний/нижний регистры; LC_NUMERIC — активизирует локаль для функций форматирования дробных чисел, задает разделитель целой и дробной части в числах; LC_TIME — задает формат вывода даты и времени по умолчанию; LC_ALL — устанавливает все вышеперечисленные режимы.

Параметр $locale задает локаль, по установленному в системе уникальному имени, по которому к ней можно обратиться. Именно оно и фиксируется в этом параметре. Если величина $locale равна пустой строке "", то устанавливается та локаль, которая указана в глобальной переменной окружения, если в этом параметре передается 0, то новая локаль не устанавливается, а просто возвращается имя текущей локали для указанного режима.

Часто встречается ситуация, когда нам требуется преобразовать строку из одной кодировки кириллицы в другую. Например, мы в программе сменили локаль: была кодировка windows, а стала — KOI8-R. Но строки-то остались по-прежнему в кодировке WIN-1251, а значит, для правильной работы с ними нам нужно их перекодировать в KOI8-R. Для этого и служит функция преобразования кодировок.

convert_cyr_string(string $str, char $from, char $to);

Функция переводит строку $str из кодировки $from в кодировку $to. Конечно, это имеет смысл только для строк, содержащих "русские" буквы, т. к. латиница во всех кодировках выглядит одинаково. Разумеется, кодировка $from должна совпадать с истинной кодировкой строки, иначе результат получится неверным. Значения $from и $to — один символ, определяющий кодировку:

k — koi8-r; w — windows-1251; i — iso8859-5; a — x-cp866; d — x-cp866;