有没有办法在PHP中获取可用区域设置的列表?

2022-08-30 19:00:17

在 Java 中,您可以调用来获取可用语言环境的列表。Locale.getAvailableLocales()

我期望从PHP Locale类中获得等效项,但找不到一个。

有没有办法获取所有有效区域设置的数组?


答案 1

这里的部分混淆是PHP有两个名为“locale”的概念,它们几乎完全是分开的。

第一个是较旧的,它基本上只使用C语言环境功能。这就是PHP某些函数(例如)的背后和区域设置支持的原因。这就是其他提到在命令行上运行和使用的答案正在谈论的内容。setlocalemoney_formatlocale -asetlocale

PHP 的类和 intl 扩展中的其他相关功能较新,并且工作方式不同。它不是使用 libc 语言环境的东西,而是使用一个名为 ICU 的库,它提供自己的区域设置数据。PHP确实提供了一种方法来确定系统支持哪些区域设置:ResourceBundle::getLocales。文档在这里有点毛茸茸的,但您可以将它称为静态方法,并传递空白字符串以使用ICU的默认资源,从而获取以下受支持的区域设置的列表:Localeintl

ResourceBundle::getLocales('');

答案 2

我不认为有内置的函数。您需要询问操作系统安装了哪些区域设置。

例如,如果您在 unix 系统上运行,则需要执行以下命令:

$ locale -a

推荐