begin process at 2012 02 09 10:12:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > FONCTION RECHERCHE D'UNE RÉGION A PARTIR D'UN CODE POSTAL

FONCTION RECHERCHE D'UNE RÉGION A PARTIR D'UN CODE POSTAL


 Information sur la source

Note :
2,25 / 10 - par 4 personnes
2,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :region, codepostal, regions, fonction, recherche Niveau :Débutant Date de création :13/01/2006 Date de mise à jour :16/01/2006 10:32:16 Vu :15 811

Auteur : fredericmaill

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

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

  • <?
  • // 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;
  • }
  • }
  • ?>
<?

// 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


 Historique

16 janvier 2006 10:31:38 :
code revue et corrigé
16 janvier 2006 10:31:48 :
code revue et corrigé
16 janvier 2006 10:32:03 :
code revue et corrigé
16 janvier 2006 10:32:17 :
code revue et corrigé

 Sources de la même categorie

Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
COMPTEUR DE VISITE - FICHIER TXT - CODE MINIMAL par SuperChouquette

 Sources en rapport avec celle ci

Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
CLEF POUR EAN 13 ET 14 par RaftY
Source avec Zip Source avec une capture MOTEUR DE RECHERCHE SUR BASE MYSQL FULLTEXT ET BOOLEAN AVEC ... par cod57
RECHERCHE PAR MOT CLÉ DANS TOUS LES CHAMPS DE TOUTES LES TAB... par gabay
Source avec Zip FONCTION PHP POUR REDIMENSIONNER UNE IMAGE ET UPLOADER DANS ... par GstJasmin

Commentaires et avis

Commentaire de malalam le 13/01/2006 11:01:48 administrateur CS

Hello,

bon, je vais laisser ce source parce que je me doute qu'il sera utile aux plus grands débutants...Mais s'il te plait, change le!
Le code est vraiment moche...
les multiples retour, l'absence de vérifications sur le paramètre passé, les if () inutiles, les guillemets pour entourer les variables de type chaîne, la balise <?...etc
Je te donne un indice (un gros) :
<?php
function getRegion ($cp) {
if (false === is_numeric ($cp) || 2 > strlen ((string)$cp)) {
return false;
}
$dpt = substr ($cp, 0, 2);
$aReg = array (0 => 'Provence-Alpes-C&ocirc;te d\'Azur',
1 => 'Picardie'
);
$aDpts = array ('13' => array (0 => 'Bouches-du-Rh&ocirc;ne', ),
'04' => array (0 => 'Alpes-de-haute-Provence'),
'80' => array (1 => 'Somme')
);
return $aRetour = array ('dept' => $aDpts[$dpt][key ($aDpts[$dpt])], 'reg' => $aReg[key ($aDpts[$dpt])]);
}

print_r (getRegion ('13100'));
?>

Commentaire de lefter le 13/01/2006 11:21:05

Serai plus simple et plus rapide de faire une base de donnée, et d'y faire une recherche par une requête!
(Ton exemple est valable si ton fournisseur d'accès ne met pas à disposition une base de donnée MySql ou autre, sinon je ne vois pas l'intéret)

Commentaire de Arnauti le 13/01/2006 18:23:39

Ba je ne suis pas sur qu'une requete SQL, soit plus lente. Ce n'est qu'une idee, je n'ai pas essayer.

A++

Commentaire de kankrelune le 14/01/2006 01:52:35

euuh pourquoi ne pas passer par un tableau ?

function region($cp)
{
    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',
                       la suite... .. .
                         );
   if(isset($regions[$cp])){
      return $regions[$cp];
   } else {
      return false;
   }
}

ou même un switch...

function region($cp)
{
    if(!is_numeric($cp)){
       return false;
    }

    switch($cp){
      
        case 75:
        case 77:
        case 78:
        case 91:
        case 92:
        case 93:
        case 94:
        case 95:
           return 'Ile-de-France';
        break;

        la suite... .. .

        default:
            return false;
        break;
   }
}

lefter utiliser MySQL ne sera pas plus simple et surement pas plus rapide... de plus je ne vois pas l'interet de créer une table et de générer des requetes juste pour retrouver une région c'est totalement inutile... .. .

@ tchaOo°

Commentaire de coucou747 le 14/01/2006 10:39:56 administrateur CS

salut

tableau ou switch, seraient de bien meilleurs solution, moi je choisirais le tableau car il serait moins répétitif que le switch, plus générique, et qu'on pourrait se servir du tazbleau pour rentrer ces données dans une base de donnée...

mais cette source là est très mal codée... seul la liste des dépatrements est interessante...

Commentaire de kankrelune le 14/01/2006 17:57:01

moi j'opterais pour le switch car dans le cas d'une recherche de région comme pour cette source si on prend un tableau on répète la même entrée pour plusieurs départements alors qu'avec un switch on peut les grouper... par contre dans le cas d'une recherche de département c'est clair qu'un tableau sera plus adapté... .. .

@ tchaOo°

Commentaire de dume le 14/01/2006 22:41:20

Juste pour info, le code postal ne comporte que des chiffres, et pour la Corse il faut lire 20 et non pas 2A ou 2B...
Quant au code, j'opterais pour ma part, pour une requête sql sur une table de départements.

Commentaire de malalam le 15/01/2006 12:32:50 administrateur CS

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).

Commentaire de Arto_8000 le 16/01/2006 02:57:27

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

Commentaire de malalam le 16/01/2006 09:37:50 administrateur CS

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 :-)

Commentaire de Arto_8000 le 18/01/2006 01:00:56

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).

Commentaire de fredericmaill le 18/01/2006 09:23:59

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.










 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Connaitre la region d'un utilisateur [ par pssinjaune ] Bonjour,J'ai fais quelques recherche sans succés, je recherche une source pour connaitre la region de france d'où viens un visiteur.J'ai vu que XITI f recherche multicriteres a partir d'un formulaire [ par bakchlada ] salut ........... je viens de debuter en php et malheuresement &#231;a se sent . bon , passons a ma question pour ne pas vous faire perdre votre prec Recherche de fichiers [ par bob10 ] Bonjour à tous, je souhaiterai savoir comment on peut rechercher des fichiers en php à partir de 2 parties d'un nom de fichier, par exemple je veux tr Fonction recherche d'un mot clé sur page HTML [ par ngtuan41 ] Bonjour à tous, Je me permets de vous contacter car j'aimerai mettre une fonctio recherche sur une page d'internet. En effet, j'ai une photothèque d' Variables et fonctions [ par bobybx ] bonjour,j'ai un léger souci concernant une fonction et mes connaissances limitées ne m'ont pour l'instant pas permis de résoudre un problème je pense Recherche la presence d'acrobat reader sur un PC [ par olst59 ] Bonjour, je suis actuellement en stage et je doit devellopper un site intranet.&nbsp;mon tuteur m'a demander de tester si acrobat reader est install&# Recherche [ par gazalii ] bonjour a vous tousje viens de faire une fonction de recherche dans une page php cette fonction ne me retourne pas le mot exacte lorsqu il y a un cara fonction recherche [ par am1ra2 ] bonjour,j'ai besoin d'une fonction recherche qui prend en paramétre un ou plusieurs tableau, des champs ou mots clé je n'ai pas comprend parquoi je co Je cherche une astuce pour ma fonction de recherche [ par begueradj ] Bonjour, Je développe un site de commerce en ligne. Pour ce faire, j'enregistre les photos de mes produits dans un dossier. lesdites photos je leur d Aidez MOI !!!!! SVP [ par dadudo ] Salut à tous les lecteurs perdu dans cette page,Je recherche une fonction qui permet d'afficher une variable comme qui suit :&lt;?php$var1 = "15e8-56r


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,669 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales