首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Zend将国家/地区字符串转换为ISO 3166-1代码?

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

Stack Overflow用户
提问于 2010-07-06 21:23:08
回答 4查看 6K关注 0票数 4

有没有人知道有没有可能使用Zend_Locale来获取一个国家的ISO3166-1代码,如果您将国家名称作为字符串的话?例如,我有"Nederland“,所以我想得到"NL”。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-07 03:50:50

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

票数 2
EN

Stack Overflow用户

发布于 2010-07-06 21:56:36

我不知道Zend有没有办法做到这一点,但你自己做起来相当容易。

This tutorial展示了如何以XML格式获取最新的ISO3166-1国家代码列表,对其进行解析,然后创建一个可以在需要国家代码转换数组时包括在内的PHP文件:

代码语言:javascript
运行
复制
$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() function加载它。这可能是更可取的IMO。或者,见鬼,您可以只保存XML并在加载时对其进行解析。

票数 3
EN

Stack Overflow用户

发布于 2010-07-06 22:17:48

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

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3186528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档