begin process at 2010 02 10 01:34:39
  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 :11 886

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

CALCUL D'UNE DISTANCE ORTHONORMIQUE par bossfoot
Source avec Zip ESPACE ADMIN SIMPLE par mousaid_88
Source avec Zip IMAGINE-CMS V2.20 par djack69
Source avec Zip AFFICHAGE ET GESTION DE DIAPORAMA EN PHP SANS BASE DE DONNÉE... par mldvb
Source avec Zip Source avec une capture PARSER ALLOCINE par cyrhades

 Sources en rapport avec celle ci

Source avec Zip RECHERCHE DE MOTIF DANS UNE IMAGE par ParseError
Source avec Zip Source avec une capture SEARCHMOTS par boscoauhunier
Source avec Zip GESTION_ENSEIGNANTS par Elmarzougui
Source avec Zip GÉNÉRER UN MOT DE PASS ALÉATOIRE par narkos2
COURTE ET SIMPLE FONCTION RÉCURSIVE POUR LECTURE DE RÉPERTOI... par mbdx

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

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 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 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' 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 fonction recherche [ par Devils91 ] Bonjour à tous, Je suis actulement entrain de créer du dictionnaire pour un forum et j'aimerais il incorporait une foncti


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,796 sec (4)

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