jabarihunt / country-codes
一个简单的类,用于返回国家代码(或国家名称)。
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-09-06 16:41:18 UTC
README
这是一个用于获取国家代码和/或名称的简单类。通常这将是存储在数据库中并从数据库中访问的数据。然而,在以下情况下,这个类将非常有用...
- 在无法访问数据库的地方运行您的应用程序
- 没有权限向数据库添加表
- 除了国家的表之外,您的应用程序不需要数据库
需要PHP 7.0+(由于类型定义)
安装
通过Composer
在您的composer.json文件相同的目录下运行以下命令
composer require jabarihunt/country-codes
通过Github
-
将此存储库克隆到工作目录:
git clone git@github.com:jabarihunt/country-codes .
-
在您的项目中包含CountryCodes类...
require('/path/to/CountryCodes.php')
...或者如果使用自动加载...
use jabarihunt/CountryCodes;
用法
可用方法
在类中公开了两个静态方法...
-
get(
int $codeType
,string $code
,bool $useAPI = FALSE
) 此函数接受一个代码类型(作为类常量提供)和一个相应的值。该函数返回一个包含国家名称、2位国家代码、3位国家代码和联合国国家代码的数组。 -
getAll(
bool $useAPI = FALSE
) 返回一个多维数组,包含所有国家的国家名称、2位国家代码、3位国家代码和联合国国家代码。
注意: 国家数据硬编码到类中的数组中。但是,可选参数(
$useAPI
)将生成一个HTTP请求到REST Countries API以获取实时数据。国家变化很少见,但确实会发生!
此外,还有五个公开的常量,代表类数据类型
public const CountryCodes::CODE_TYPE_COUNTRY_NAME public const CountryCodes::CODE_TYPE_NATIVE_NAME public const CountryCodes::CODE_TYPE_2_LETTER public const CountryCodes::CODE_TYPE_3_LETTER public const CountryCodes::CODE_TYPE_UN
获取单个国家的数据
假设我们有一个国家名称,例如海地,我们想要3位国家代码。我们将使用get()
方法,传递给它值的类型(在这种情况下是国家名称)以及值本身。
<?php $countryName = 'Haiti'; $countryCodeType = CountryCodes::CODE_TYPE_COUNTRY_NAME; $countryCodes = CountryCodes::get($countryCodeType, $countryName); var_dump($countryCodes); ?>
/* OUTPUT */
array(5) {
["name"]=> string(5) "Haiti"
["nativeName"]=> string(6) "Haïti"
["2letter"]=> string(2) "HT"
["3letter"]=> string(3) "HTI"
["un"]=> string(3) "332"
}
如你所见,此方法返回一个包含国家官方名称、本地名称(在其本地语言中)、2位国家代码、3位国家代码和联合国数字代码的数组。无论来源是硬编码的类数据还是从REST Countries API的HTTP请求,都会是这样。以下会返回完全相同的输出(注意使用了第三个可选参数)
CountryCodes::get($countryCodeType, $countryName, TRUE)
注意: 承认的国家名称与REST Countries API中的名称完全相同。大多数都像上面例子中的"海地"一样直接。但是,有些不那么明显,例如"委内瑞拉(玻利瓦尔共和国)"而不是仅仅"委内瑞拉"!
如果碰巧有一个国家代码并希望接收国家名称(或类中的其他数据点),则可以使用该类作为反向查找。以下示例会返回与上面完全相同的输出
<?php $unitedNationsCode = '332'; $countryCodeType = CountryCodes::CODE_TYPE_UN; $countryCodes = CountryCodes::get($countryCodeType, $unitedNationsCode); ?>
获取所有国家
可能存在您需要检索所有国家代码的情况。以下示例将返回一个具有与上面示例相同键的多维数组的国家代码。
<?php // RETURN HARD CODED CLASS VALUES $allCountryCodes = CountryCodes::getAll(); /* OR */ // RETURN DATA VIA HTTP REQUEST TO THE REST COUNTRIES API $allCountryCodes = CountryCodes::getAll(TRUE); ?>
贡献
- 分叉仓库
- 创建一个描述性的分支名称
- 对您的分支进行编辑
- 合并(变基)您的提交
- 创建拉取请求
许可证
本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE.md文件。