首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

setlocale

(PHP 4, PHP 5, PHP 7)

setlocale - 设置区域设置信息

描述

代码语言:javascript
复制
string setlocale ( int $category , string $locale [, string $... ] )
代码语言:javascript
复制
string setlocale ( int $category , array $locale )

设置区域设置信息。

参数

category

category 是一个命名常量,用于指定受区域设置影响的函数的类别:

  • LC_ALL 为以下全部
  • LC_COLLATE 有关字符串比较,请参阅strcoll()
  • 用于字符分类和转换的LC_CTYPE,例如strtoupper()
  • 用于localeconv()的LC_MONETARY
  • 用于小数分隔符的LC_NUMERIC(另请参见localeconv())
  • 用于strftime()的格式化日期和时间的LC_TIME
  • 系统响应的LC_MESSAGES(如果PHP使用libintl编译,则可用)

locale

如果语言环境为NULL或空字符串“”,语言环境名称将根据与上述类别名称相同的环境变量值或“LANG”设置。

如果区域设置为“0”,则区域设置不受影响,只返回当前设置。

如果locale是一个数组或者后面跟有附加参数,那么每个数组元素或参数都会尝试设置为新语言环境直到成功。如果在不同系统上以不同名称知道区域设置,或者为可能不可用的区域设置提供回退,这很有用。

...

(可选的字符串或数组参数尝试作为区域设置直到成功。)

注意:在Windows上,setlocale(LC_ALL,'')从系统的区域/语言设置(可通过控制面板访问)设置区域设置名称。

返回值

返回新的当前语言环境,如果语言环境功能未在您的平台上实现,则指定的语言环境不存在或类别名称无效,则返回FALSE。

无效的类别名称也会导致警告消息。类别/区域名称可以在»RFC 1766»ISO 639中找到。不同的系统对区域设置有不同的命名方案。

注意setlocale()的返回值取决于PHP正在运行的系统。它返回系统setlocale函数返回的内容。

更新日志

描述

7.0.0

对作为字符串传递的category参数的支持已被删除。该版本只能使用LC_ *常量。

5.3.0

如果将字符串传递给类别参数而不是其中一个LC_ *常量,则此函数现在会引发E_DEPRECATED通知。

例子

示例#1 setlocale()示例

代码语言:javascript
复制
<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nl_NL');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* try different possible locale names for german */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>

示例#2 setlocale()Windows示例

代码语言:javascript
复制
<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nld_nld');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* try different possible locale names for german */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>

注意

警告

区域设置信息按每个进程维护,而不是每个线程。如果您在多线程服务器API(如Windows上的IIS,HHVM或Apache)上运行PHP,则脚本运行时可能会遇到区域设置突然更改,但脚本本身从不调用setlocale()。这是由于其他脚本同时在同一进程的不同线程中运行,因此使用setlocale()更改了进程范围的语言环境。

提示

Windows用户可以locale在Microsoft的MSDN网站上找到有关字符串的有用信息。支持的语言字符串可以在»国家/地区字符串文档中的»语言字符串文档和支持的国家/地区字符串中找到。

← rtrim

sha1_file →

扫码关注腾讯云开发者

领取腾讯云代金券