PHP setlocale 字符串函数

  • 定义和用法

    setlocale - 设置地区信息
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
    如果将字符串传递给category参数而不是其中一个LC_*常量,则此函数现在抛出E_DEPRECATED通知。
  • 语法

    setlocale (  int $category , string $locale [, 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是一个数组或后跟其他参数,则尝试将每个数组元素或参数设置为新的语言环境,直到成功为止。如果在不同系统上以不同名称知道语言环境或为可能不可用的语言环境提供回退,这将非常有用。
    ... 可使用字符串或数组参数进行尝试直到设置成功。
    提示:在Windows中,setlocale(LC_ALL, '')要从系统中的区域/语言设置(通过控制面板访问) 。
    警告:每个进程维护语言环境信息,而不是每个线程。 如果您在Windows上运行多线程服务器API(如IIS或Apache)上的PHP,则在脚本运行时可能会遇到区域设置的突然更改,尽管脚本本身从未调用过setlocale()。 这是因为其他脚本同时在同一进程的不同线程中运行,使用setlocale()更改进程范围的语言环境。
    提示:Windows用户可以在Microsoft的MSDN网站上找到有关区域设置字符串的有用信息。 支持的语言字符串可以在»国家/地区字符串文档中的»语言字符串文档和支持的国家/地区字符串中找到。
  • 返回值

    返回新的当前语言环境,如果平台上未实现语言环境功能,指定的语言环境不存在或类别名称无效,则返回FALSE。无效的类别名称也会导致出现警告消息。 类别/区域设置名称可以在»RFC 1766»ISO 639中找到。不同的系统具有不同的区域设置命名方案。
    注意:setlocale()的返回值取决于PHP正在运行的系统。 它返回系统setlocale函数返回的确切内容。
  • 示例

    <?php
    /* 设置本地为荷兰 */
    setlocale(LC_ALL, 'nl_NL');
    
    /* 输出: vrijdag 22 december 1978 */
    echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));
    
    echo "<br/>";
    /* 从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'";
    ?>
    
    尝试一下