Обработка строк
PHP Manual

setlocale

(PHP 4, PHP 5)

setlocaleУстанавливает настройки локали

Описание

string setlocale ( int $category , string $locale [, string $... ] )
string setlocale ( int $category , array $locale )

Устанавливает настройки локали.

Список параметров

category

Параметр category это именованная константа, определяющая категорию функций, на которые будет влиять установка локали:

  • LC_ALL - все нижеперечисленное
  • LC_COLLATE - функции сравнения строк, смотри strcoll()
  • LC_CTYPE - функции преобразования и классификации строк, например strtoupper()
  • LC_MONETARY - для функции localeconv()
  • LC_NUMERIC - задает символ десятичного разделения (см. также localeconv())
  • LC_TIME - форматирование даты/времени функцией strftime()
  • LC_MESSAGES для системынх сообщений (доступна если PHP был скомпилирован с поддержкой libintl)

locale

Если в качестве locale передана пустая строка "" или NULL, имена локалей будут взяты из одноименных переменных окружения или переменной с именем "LANG".

Если в качестве locale передан NULL или "0", локаль изменена не будет, а будет возвращено текущее значение.

Если в качестве locale передан массив, или после этого аргумента следуют дополнительные аргументы, функция будет использовать элементы массива или аргументы по порядку в качестве имен локали до тех пор, пока установка локали не будет успешной. Это удобно, если одна и та же локаль имеет разное имя в различных системах, или для создания запасного варианта при отсутствии какой-либо локали в системе.

...

(Необязательные аргументы в виде строк или массивов для установки настроек локали до первой успешной попытки.)

Замечание:

На Windows, setlocale(LC_ALL, '') устанавливает имена локалей из системных региональных/языковых настроек (доступных через Панель Управления).

Возвращаемые значения

Возвращает имя вновь установленной локали или FALSE если система не поддерживает установку локали, указанная локаль не существует или передано недопустимое имя категории.

Недопустимое имя категории также вызывает предупредение. Имена локалей и категорий описаны в » RFC 1766 и » ISO 639. Разные системы имеют различных схемы именования локалей.

Замечание:

Возвращаемое функцией setlocale() значение зависит от системы, на которой запущен PHP. Она возвращает точно то же значение, что и системная функция setlocale.

Список изменений

Версия Описание
5.3.0 Эта функция в настоящее время бросает уведомления E_DEPRECATED, если строка передается в параметре category вместо одной из констант LC_*.
4.3.0 Доступна передача нескольких локалей.
4.2.0 Передача category в виде строки больше не поддерживается, рекомендуется использовать перечисленные выше константы. Передача этих констант как строк (в кавычках) вызовет вывод предупреждения.

Примеры

Пример #1 Примеры использования setlocale()

<?php
/* Установка голландской локали */
setlocale(LC_ALL'nl_NL');

/* выводит: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y"mktime(00012221978));

/* попытка использовать различные локали для  немецкого языка (с PHP 4.3.0) */
$loc_de setlocale(LC_ALL'de_DE@euro''de_DE''de''ge');
echo 
"На этой системе немецкая локаль имеет имя '$loc_de'";
?>

Пример #2 Примеры использования setlocale() в Windows

<?php
/* Установка голландской локали */
setlocale(LC_ALL'nld_nld');

/* выводит: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y"mktime(00012221978));

/* попытка использовать различные локали для  немецкого языка (с PHP 4.3.0) */
$loc_de setlocale(LC_ALL'de_DE@euro''de_DE''deu_deu');
echo 
"Предпочитаемая немецкая локаль на этой системе: '$loc_de'";
?>

Примечания

Внимание

Информация о локали модифицируется во всем процессе, а не по каждому потоку отдельно. Если вы используете PHP на многопоточном сервере, таком как IIS или Apache под Windows, вы можете обнаружить неожиданные изменения в настройках локали во время выполнения скриптов, никогда и не вызывавших setlocale(). Это происходит из-за того, что другие скрипты, запущенные в параллельных потоках данного процесса, в то же самое время поменяли настройки локали для всего процесса с помощью setlocale().

Подсказка

Пользователи Windows найдут полезной информацию о значениях locale на сайте Microsoft MSDN. Поддерживаемые языки перечислены здесь: » http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx, а значения стран/регионов здесь: » http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.90%29.aspx.


Обработка строк
PHP Manual