有沒有人知道如果可以使用Zend_Locale獲取國家/地區的ISO 3166-1代碼(如果國家/地區名稱爲字符串)? 例如我有「Nederland」,所以我想獲得「NL」。如何使用Zend將國家字符串轉換爲ISO 3166-1代碼?
回答
你應該看看從Zend_Locale :: getTranslation()。你可能會得到一個國家名稱列表(一個簡單的數組) - 然後你可以使用array_search()來獲得所需的「國家密鑰」!
https://github.com/johannesl/Internationalization
你可以用它來轉換這兩個名稱=>國家代碼和反向:
我不知道Zend是否有這方面的功能,但是自己做起來相當容易。
This tutorial展示瞭如何抓取的ISO 3166-1國家代碼的最新列表,以XML格式,解析它,然後創建可以在需要的國家代碼轉換陣列包含一個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()
function加載它。這可能會是更好的海事組織。或者,你可以保存XML並在加載時解析它。
感謝提示Lèse,但確實這部分是由Zend_Locale覆蓋。這是國家轉換回國家可以用不同語言編寫的代碼,這給我一個問題。 – Peter 2010-07-07 04:59:17
啊,對不起,我誤解了你的問題。 – 2010-07-07 05:41:08
我不確定Zend HTTp調用如何進行,但這裏可能是一個很好的參考資源。
使用Yahoo!的地理數據,它允許將自由格式字符串映射到WOE ID中。對於國家來說,WOE Ids是ISO 3166-1的代碼。
要自由形式的字符串轉換成WOE ID,您可以使用GeoPlanet的API:http://developer.yahoo.com/geo/geoplanet/
很酷的東西,謝謝你介紹給我。目前我想保持我的代碼「在室內」,但這肯定會有一天派上用場。 – Peter 2010-07-07 05:44:33
我在做countrynames和ISO 3166國家代碼一個上最新集合過來。
我還創建了一個將出現在github上的通用國別別名集合。
- 1. 如何將國家代碼轉換爲國家名稱
- 2. ISO國家代碼
- 3. iOS:將ISO Alpha 2轉換爲Alpha 3國家代碼
- 4. 使用PYCOUNTRY將ISO 3166-1 alpha-2轉換爲國家名稱
- 5. 獲取ISO國家代碼
- 6. 將國家名稱轉換爲國家代碼縮寫php
- 7. 將國家代碼轉換爲國家名稱
- 8. 轉換國家代碼國家名稱
- 9. 使用php將特殊字符轉換爲ISO Latin-1代碼?
- 10. 國家名稱爲ISO 3166-2代碼
- 11. 將電話號碼轉換爲國際國家代碼iOS
- 12. 將ISO3國家代碼轉換爲ISO2國家代碼 - Windows Phone 8
- 13. 轉換ISO2國家代碼
- 14. 如何將此代碼轉換爲使用字符串
- 15. 將國際字符串轉換爲\ u在java中的代碼
- 16. 如何將國家代碼轉換爲相應的貨幣?
- 17. 如何將國家名稱轉換爲貨幣代碼?
- 18. PHP國際國家代碼2國家代碼的字符
- 19. Javascript/jQuery:如何將字符串轉換爲HTML字符代碼
- 20. 如何將密鑰代碼轉換爲字符或字符串?
- 21. 如何將字符串(例如「iso-8859-1」)轉換爲String.Encoding對應字符串?
- 22. 如何在C++中將ISO 8601字符串轉換爲time_t?
- 23. 將字符串轉換爲dateTime美國
- 24. 使用Java將MySql字符串ISO-8859-1轉換爲UTF-8
- 25. 如何在Qt中獲取國家代碼(不是ISO代碼)
- 26. 使用Python DictReader/DictWriter將國家/地區代碼轉換爲國家/地區代碼
- 27. 如何將ISO 8601字符串轉換爲Delphi TDate?
- 28. 如何在iOS中以編程方式將「國家代碼」轉換爲「移動國家代碼」?
- 29. 將擴展的ASCII字符代碼轉換爲ISO-8859-1
- 30. 如何使用php-intl將國家代碼轉換爲本地化的國家名稱
...這麼簡單的解決方案可以。特別是因爲我只允許幾個國家使用幾種語言,所以array_search很快。我將它捆綁在一個過濾器中,我很好。謝謝! – Peter 2010-07-07 05:45:55