如何使用 Zend 将国家/地区字符串转换为其 ISO 3166-1 代码?

发布于 2024-09-08 05:20:13 字数 101 浏览 6 评论 0原文

有谁知道如果您将国家/地区名称作为字符串,是否可以使用 Zend_Locale 获取某个国家/地区的 ISO 3166-1 代码? 例如,我有“Nederland”,所以我想得到“NL”。

Does anybody know if it's possible to use Zend_Locale to get the ISO 3166-1 code for a country if you have the country name as a string?
For example I have "Nederland" so I would like to get "NL".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

Saygoodbye 2024-09-15 05:20:13

我不知道 Zend 是否有这方面的功能,但你自己做起来相当容易。

本教程显示如何获取 XML 格式的 ISO 3166-1 国家/地区代码的最新列表,对其进行解析,然后创建一个 PHP 文件,当您需要国家/地区代码翻译数组时可以包含该文件:

$str = file_get_contents('http://opencountrycodes.appspot.com/xml/');
$xml = new SimpleXMLElement($str);
$out = '$countries'." = array(\n";
foreach ($xml->country as $country)
{
    $out .= "'{$country['code']}' => \"{$country['name']}\",\n";
}
$out .= ");";

file_put_contents('country_names.php', $out);

或者,您可以将其另存为 CSV文件并使用 PHP 的 fgetcsv() 函数加载它< /a>.在我看来,这可能是更好的选择。或者,哎呀,您可以只保存 XML 并在加载时解析它。

I don't know if Zend has something for that, but it's fairly easy to do on your own.

This tutorial shows how you can grab the latest list of ISO 3166-1 country codes in XML format, parse it, and then create a PHP file that can be included when you need a country code translation array:

$str = file_get_contents('http://opencountrycodes.appspot.com/xml/');
$xml = new SimpleXMLElement($str);
$out = '$countries'." = array(\n";
foreach ($xml->country as $country)
{
    $out .= "'{$country['code']}' => \"{$country['name']}\",\n";
}
$out .= ");";

file_put_contents('country_names.php', $out);

Alternately, you can save it as a CSV file and load it using PHP's fgetcsv() function. That would probably be preferable IMO. Or, heck, you could just save the XML and parse it when you load it.

柠檬心 2024-09-15 05:20:13

我不确定如何在 Zend 中进行 HTTP 调用,但这里可能是一个很好的参考资源。

使用 Yahoo! 的地理数据,它允许将自由格式字符串映射到 WOE Id。对于国家/地区,WOE ID 是 ISO 3166-1 代码。

要将自由格式字符串转换为 WOE Id,您可以使用 GeoPlanet API:http://developer .yahoo.com/geo/geoplanet/

I'm not sure how within Zend HTTp calls can be made, but here is probably a good resource to refer.

Use Yahoo!'s Geo data, which allows mapping of free form strings into WOE Ids. For countries, WOE Ids are the ISO 3166-1 codes.

To convert a free form string into a WOE Id, you can use the GeoPlanet APIs : http://developer.yahoo.com/geo/geoplanet/

旧时光的容颜 2024-09-15 05:20:13

您应该看看 Zend_Locale::getTranslation()。您可能会得到一个国家/地区名称列表(一个简单的数组) - 然后您可以使用 array_search() 来获取所需的“国家/地区密钥”!

You should have a look at Zend_Locale::getTranslation(). You may get a list (a simple array) of country names - and then you may use array_search() to get the needed "country-key"!

南汐寒笙箫 2024-09-15 05:20:13

我在以下位置收集了最新的国家/地区名称和 ISO 3166 国家/地区代码:

https://github.com /johannesl/Internationalization

你可以用它来转换 name =>;国家代码和反向。

我还创建了一个常见国家/地区别名的集合,这些别名将出现在 github 上。

I have made an up-to-date collection of countrynames and ISO 3166 country codes over at:

https://github.com/johannesl/Internationalization

You can use it to convert both name => country code and reverse.

I'm also creating a collection of common country aliases that will appear on github.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文