Fonction recherche d'une région a partir d'un code postal

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 299 fois - Téléchargée 29 fois

Contenu du snippet

Pour ma première source, voici un petit script tout bête, qui permet a partir d'une code postal de renvoyer la région française au quel il appartiens

Source / Exemple :


<?

// recherche de la region en fonction d'un code postal v2

function region($cp)
{
$cp = substr($cp, 0, -3);
	
    if(!is_numeric($cp)){
       return false;
    }

    $regions = array(
                '75' => 'Ile-de-France',
                '77' => 'Ile-de-France',
                '78' => 'Ile-de-France',
                '91' => 'Ile-de-France',
                '92' => 'Ile-de-France',
                '93' => 'Ile-de-France',
                '94' => 'Ile-de-France',
                '95' => 'Ile-de-France',
		'51' => 'Champagne-Ardenne',  
		'08' => 'Champagne-Ardenne',  
		'10' => 'Champagne-Ardenne',
		'52' => 'Champagne-Ardenne',
		'80' => 'Picardie',
		'02' => 'Picardie',
		'60' => 'Picardie',
		'76' => 'Haute-Normandie',
		'27' => 'Haute-Normandie',
		'45' => 'Centre',
                '18' => 'Centre',
                '28' => 'Centre',
                '36' => 'Centre',
                '37' => 'Centre',
                '41' => 'Centre',
		'14' => 'Basse-Normandie',
                '50' => 'Basse-Normandie',
                '61' => 'Basse-Normandie',  
		'21' => 'Bourgogne',  
		'58' => 'Bourgogne',
		'71' => 'Bourgogne',
		'89' => 'Bourgogne',
		'59' => 'Nord-Pas-de-Calais',
		'62' => 'Nord-Pas-de-Calais',
		'57' => 'Lorraine',
		'54' => 'Lorraine',
		'55' => 'Lorraine',
                '88' => 'Lorraine',  
		'67' => 'Alsace',
                '68' => 'Alsace',
		'25' => 'Franche-Comté',
                '39' => 'Franche-Comté',
                '70' => 'Franche-Comté',
                '90' => 'Franche-Comté',  
		'44' => 'Pays-de-la-Loire',  
		'49' => 'Pays-de-la-Loire',  
		'53' => 'Pays-de-la-Loire',
		'72' => 'Pays-de-la-Loire',
		'85' => 'Pays-de-la-Loire',	
		'35' => 'Bretagne',
		'22' => 'Bretagne',
		'29' => 'Bretagne',
		'56' => 'Bretagne',
		'86' => 'Poitou-Charentes',
                '16' => 'Poitou-Charentes',
                '17' => 'Poitou-Charentes',
                '79' => 'Poitou-Charentes',
		'33' => 'Aquitaine',
                '24' => 'Aquitaine',
                '40' => 'Aquitaine',
                '47' => 'Aquitaine',
                '64' => 'Aquitaine',  
		'31' => 'Midi-Pyrénées',  
		'09' => 'Midi-Pyrénées',
		'12' => 'Midi-Pyrénées',
		'32' => 'Midi-Pyrénées',
		'46' => 'Midi-Pyrénées',
		'65' => 'Midi-Pyrénées',
	        '81' => 'Midi-Pyrénées',
		'82' => 'Midi-Pyrénées',
		'87' => 'Limousin',
                '19' => 'Limousin',
                '23' => 'Limousin',  
		'69' => 'Rhône-Alpes',
                '01' => 'Rhône-Alpes',
                '07' => 'Rhône-Alpes',
                '26' => 'Rhône-Alpes',
                '38' => 'Rhône-Alpes',
                '42' => 'Rhône-Alpes',  
		'73' => 'Rhône-Alpes',  
		'74' => 'Rhône-Alpes',
		'63' => 'Auvergne',
		'03' => 'Auvergne',
		'15' => 'Auvergne',
		'43' => 'Auvergne',
		'34' => 'Languedoc-Roussillon',
		'11' => 'Languedoc-Roussillon',
		'30' => 'Languedoc-Roussillon',
                '48' => 'Languedoc-Roussillon',
                '66' => 'Languedoc-Roussillon', 
		'13' => 'Provence-Alpes-Côte-d Azur',
                '04' => 'Provence-Alpes-Côte-d Azur',
                '05' => 'Provence-Alpes-Côte-d Azur',
                '06' => 'Provence-Alpes-Côte-d Azur',
                '83' => 'Provence-Alpes-Côte-d Azur',
                '84' => 'Provence-Alpes-Côte-d Azur',    
		'20' => 'Corse');
  
   if(isset($regions[$cp])){
      return $regions[$cp];
   } else {
      return false;
   }
}
?>

Conclusion :


merci @ malalam, kankrelune, coucou747 , dume et Arto_8000 p pour leurs remarques et aide

A voir également

Ajouter un commentaire

Commentaires

fredericmaill
Messages postés
144
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
22 mars 2006

J'ai réalisé cette fonction pour un formulaire, les régions ainsi récupérées vont alimenter une liste déroulante. Afin d'effectué des recherche par critère de région pour avoir que la liste des régions utiles.

J'avais pensé à la localisation a partir de l'IP, mais cette liste de client, car il s'agit de client, peut être alimenté dans différent site.
Arto_8000
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5
D'habitude se genre de script sert à localiser un utilisateur selon d'où il vient ,donc avec le genre de traitement que j'ai voulu faire on aurait pas à demande le code postal de l'utilisateur pour avoir les infos. Pour le script le WHOIS c'est plus "who is ?" parce que ça utilise la base de donnée du serveur et non les base de donnée de WHOIS. Pour se que je présente l'avantage c'est que t'as pas besoin d'avoir toute les bases de données pour les infos sur chaque pays ,IP et autres infos qui sont utiles sur les utilisateurs. Prends par exemple quelqu'un qui veut faire un site qui s'adresse à tout le monde et qui veut accumuler des données sur les utilisateurs qui vont sur sont site. Si il le fait sur un site gratuit il n'aura probablement pas assez d'espace (des sites gratuits et pas de pub ça donne pas grand espace) ou de ressources disponible (MySQL c'est pas sur tout les serveurs qui ont PHP).
malalam
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
Arto_8000 => oui, mais ce n'est pas là le but. Le but est simplement de trouver une région en fonction d'un code postal, ici. Et puis, je préfère calculer ça, si c'est possiblé, à partir d'une fonction sur mon site, plutôt que de devoir me connecter à un autre site pour avoir cette réponse ;-)
Pour WHOIS, la population du pays...??

Enfin, sinon, le service que tu montres a l'air sympa, en effet :-)
Arto_8000
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5
Plus simple pour avoir la région du visiteur :

<HTML>
<HEAD>
<TITLE>Where are you ?</TITLE>
<SCRIPT language="javascript" type="text/javascript" src="http://gd.geobytes.com/Gd?variables=GeobytesRegion"></SCRIPT>
<SCRIPT language="javascript" type="text/javascript">
alert(sGeobytesRegion);
</SCRIPT>
</HEAD>
</HTML>

Je ne sais pas si j'utilise la bonne variable, mais chez moi ça retourne Quebec.

J'ai trouver se merveilleux outil de WHOIS qui peut retourner à peu près n'importe quoi sur l'utilisateur, même la population de son pays et la ville. Pour plus d'info :

http://www.geobytes.com/GeoDirection.htm
malalam
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
Je suis de l'avis de Coucou et de Kankrelune. A moins d'avoir un besoin express de ces données dans une bdd, je ne vois pas l'intérêt de faire des requêtes pour ça.
Et j'opterais plutôt aussi pour le tableau, qui donnera un code moins long, et plus clair. Et on peut s'amuser (mon code renvoie aussi le nom du département par exemple).

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.