Функции за низове
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 има стойност "0", локала няма да бъде засегнат, а ще се върне единствено текущия локал.

Ако параметърът locale е масив или след него има други параметри, то с всеки елемент на масива или параметър ще се направи опит да бъде установен като нов локал, докато тази операция успее. Този подход е полезен в случаите, когато даден локал е познат под няколко имена на различни системи или с цел подсигуряване за локал който може и да не е наличен.

...

Връщани стойности

Функцията връща новия текущ локал или FALSE, ако вашата платформа няма възможност за работа с локали, указаният локал не съществува или името на категорията е невалидно.

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

Забележка: Стойността, която връща функцията setlocale() зависи от системата на която е стартиран PHP. Тя връща точно това, което връща и системната функция за установяване на локал.

Дневник на промените

Версия Описание
5.3.0 Функцията хвърля E_DEPRECATED съобщение, ако вместо някоя от LC_* константите, като параметър category е предаден низ.
4.3.0 Става възможно предаването на множество локали.
4.2.0 Предаването на низ за параметъра category е непрепоръчително, като вместо него могат да се ползват константите по-горе. Предаването им като низ (в кавички) ще предизвика съобщение от тип предупреждение.

Примери

Example #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 
"Preferred locale for german on this system is '$loc_de'";
?>

Example #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 
"Preferred locale for german on this system is '$loc_de'";
?>

Бележки

Предупреждение

Информацията за локала се поддържа на ниво процес, а не на ниво нишка. Ако PHP работи на многонишков сървърен API, като IIS или Apache под Windows, може да станете свидетели на неочаквани промени на локала по време на изпълнение на скрипта, въпреки че, в самия скрипт никога не е извикана функцията setlocale(). Това е така, тъй като други скриптове, стартирани в други нишки на същия процес, в същото време са променили локала на ниво процес, посредством setlocale().

Съвет

Потребителите на операционната система Windows могат да намерят полезна информация относно низове на локали на сайта на MSDN. Поддържаните низове за езици могат да бъдат видяни на » http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp а поддрържаните низове за страни и региони на » http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp. Windows системите поддржат трибуквени кодове за страни и региони дефинирани в ISO 3166-Alpha-3, който стандарт може да бъде видян на » сайта на Unicode.


Функции за низове
PHP Manual