2010-11-16 11 views
9

Je voudrais obtenir une classe pour transformer un nom de pays complet comme United States en un code de pays ISO de 2 lettres USToute classe pour transformer le nom du pays en un code de 2 lettres?

P.S. Je ne préfère pas appeler quelque chose comme google API pour cela.

Merci!

+3

Il suffit de télécharger la [liste ISO 3116] (http://www.iso.org/iso/country_codes/iso_3166_code_lists.htm) et faire une recherche simple ... – ircmaxell

Répondre

27

Que diriez-vous du tableau here?

Vous pouvez alors l'appeler comme suit:

$code = array_search('United States', $countrycodes); // returns 'US' 
$country = $countrycodes['US']; // returns 'United States' 
0

J'ai fait une petite collection croissante des classes sur github qui contiennent des constantes à cet effet. vous n'avez pas à le chercher et vous pouvez obtenir des indices via votre IDE en tapant. Utile si vous ne pouvez pas vous souvenir de tous les noms de pays et orthographes.

Il peut aussi faire des codes de pays aux noms de pays: P

+1

Je ne sais pas si cela est aussi utile pour l'OP puisqu'il voulait pouvoir passer dans une chaîne. Ces constantes nécessiteraient toujours que vous fassiez une recherche entre la chaîne et le nom de la constante. –

2

Enregistrer this code comme cc.php

include_once 'cc.php'; 
$iso_code = array_search(strtolower($country_that_you_want_to_convert), array_map('strtolower', $countrycodes)); ## easy version 

ou nous pouvons faire fonctionner comme ceci:

Version 1:

include_once 'cc.php'; 
function get_iso_code($country_that_you_want_to_convert, $countrycodes){ 
    $iso_code = array_search(strtolower($country_that_you_want_to_convert), array_map('strtolower', $countrycodes)); ## easy version 
return $iso_code; 
} 

Version 2:

function get_iso_code($country_that_you_want_to_convert){ 
include_once 'cc.php'; 
    $iso_code = array_search(strtolower($country_that_you_want_to_convert), array_map('strtolower', $countrycodes)); ## easy version 
return $iso_code; 
} 

Désolé si je faisais des erreurs. si je n'ai que downvote, je serai heureux de retirer mon message. espérons que son aide quelqu'un.

+0

Meilleure réponse, vraiment utile! –