IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Découper une adresse


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut Découper une adresse
    Bonjour,

    Aujourd'hui, je vous soumet un problème qui me semble compliqué à gérer.
    Je souhaite découper une adresse. C'est à dire, si on part d'un exemple, "15 rue de jeanne d'arc 14000 caen", j'aimerais ressortir
    - numéro de rue = 15
    - la rue = jeanne d'arc
    - le code postal = 14000
    - la ville = caen
    - département = vide
    - région = vide
    J'ai à ma disposition une table villes contenant toutes les villes de France, les départements, et les régions.

    Pour corser un peu tout ça, les adresses pourront être de multiples formats. En voici quelques uns qui me viennent à l'esprit :
    - 15 rue jeanne d'arc 14000 caen
    - rue jeanne d'arc 14000 caen
    - rue jeanne d'arc caen
    - rue jeanne d'arc 14000
    - 14000
    - caen
    - 14000 caen
    - calvados
    - basse normandie
    Cela me parait extrêment compliquer à faire, auriez-vous des idées, des exemples ?

    Merci beaucoup

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Apart faire des tableaux et faire des recherches dans la chaîne je vois pas trop.

    Pour le CP, tu sais que ca sera une série de chiffre de 5 caractères pour la France ... mais si tu tombes sur un numéro de rue à 5 caractères c'est fichu.

    Recherchez le nom d'une ville .. moue et si le nom de la rue se trouve dans l'adresse c'est fichu aussi ? Genre 15 rue de Paris 33000 Bordeaux

    Ca me parait extrêmement compliquer ...

    Mais il faudrait peut-être repartir de 0. Comment récupères-tu le tout ? Un champs libre où l'utilisateur rentre son adresse complète ?

    Je pense qu'il faut imposer un format d'adresse et pas te compliquer (enfin si tu peux encore modifier cela) ... sinon

  3. #3
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    J'ai un champs de recherche unique "Où". Je ne peux pas décupler les champs, il doit rester unique.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Fiou, peut-être revoir la conception non ? Enfin je pense pas qu'on puisse avoir l'argent et l'argent du beurre à un moment donné.

    Il peut y avoir tellement de possibilité que tu auras jamais un résultat fiable, même si tu trouves une règle de gestion qui fonctionnerait dans 99% des cas.

    Ou alors il te faut régler ca avec de l’auto implémentation ... Avoir une base qui contient toutes les rues, adresses, ville, code postales, ... afin d'avoir un champs unique mais aussi un format spécifique.

  5. #5
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Le beurre et l'argent du beurre plutôt

    Je vais continuer à chercher. Au pire, les numéros et nom de rue ne m'intéresse pas vraiment. Mais il faut que je trouve une solution dans cette voie.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Oui en effet

    Si seul la ville et le CP t'intéresse. Alors tu peux faire une recherche sur le code postal, puis sur le nom d'une ville dans ta chaîne.

    Ensuite tu vérifies dans ta BDD si les deux trouvés correspondent bien ensemble (vérifier que le CP trouvé n'est pas un numéro de rue ou que la ville ne fait pas partie de l'adresse).

    Une fois que tu as identifié ces deux paramètres, tu es certains que le reste de la chaîne est la rue. Alors un petit tableau pour le type de voie : voie, chemin, rue, impasse, lotissement, ... et le reste sera le nom de la rue.

  7. #7
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Comment prends tu en compter les cas où on n'a que le CP ou que la ville. Ou alors, quand on saisie un département ou une région ?

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    ça ne me parait pas idiot de ne prendre en compte que ce qui est recommandé par la poste et invalider les autres adresses. Voir http://fr.wikipedia.org/wiki/Adresse_postale#France

    Tu peux sans trop te fatiguer découper ton adresse avec une regexp.

    Avec l'exemple que tu donnes c'est effectivement extrêmement compliqué et à moins de disposer des listes de villes, de départements et de cp, tu vas avoir du mal à trouver des infos dans ces adresses.

  9. #9
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    J'ai bien des tables villes (ville et cp) ; départements ; région

    Je ne peux pas imposer aux utilisateurs un format, c'est à moi de les gérer.

  10. #10
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Citation Envoyé par PIEPLU Voir le message
    Comment prends tu en compter les cas où on n'a que le CP ou que la ville. Ou alors, quand on saisie un département ou une région ?
    Si l'utilisateur saisit le nom de la rue, sans le CP mais avec la ville, en effet c'est pas évident ...

    Mais bon, il faut revenir sur un but raisonnable. Desfois on veut permettre plusieurs saisies à l'utilisateur, mais au final ca sera galère.

    Si l'utilisateur saisie le nom d'une ville avec une faute, sans accent ou autre, comment tu vas gérer ca ? Vu qu'il trouvera rien dans ta BDD. Il faut que tu imposes un minimum sinon tu t'en sortiras pas.

    Ou alors tu vas faire 1000 lignes de code (une image, bien entendu) pour pas grand chose, en prenant les mots ressemblant ...

    Je pense notamment aux villages qui existent dans plusieurs départements, si ton utilisateur ne saisie pas le CP tu sauras comment ? Même si tu admets que tu arrives à retrouver le nom de ta ville dans la BDD.

    Bref, pour moi, tu vas droit au mur comme ca.

    Soit tu passes par un auto implémentation, soit tu fais au moins deux champs .. l'adresse + cp et ville

  11. #11
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Tu peux aussi t'en sortir avec des indexes fulltext, ça passera même si certains caractères sont différents mais la reconnaissance sera approximative.

  12. #12
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Je suis en train de réfléchir à définir le format de la saisir de l'utilisateur. Exemple :
    l'utilisateur saisie : 75 rue de jeanne d'arc 14000 caen
    On analyse chaque terme, et on obtient en gros,
    75 -> Numérique (retourne N)
    rue de jeanne d'arc -> Alphanumérique (retourne A)
    14000 -> 5x Numérique = CP (retourne C)
    caen -> Alphanumérique (retourne A)

    Soit au final "NACA". A partir de là, on doit bien pouvoir ressortir les mots/groupes de mots selon des conditions ?

    Voyez-vous l'idée ?

  13. #13
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Et s'il écrit :
    Appartement 01300 Résidence de de Lyon 10 impasse de paris 33000 Bordeaux

    Ou alors qu'il commence par
    Bordeaux 33000

    Enfin on sait pas ce que peut penser l'utilisateur .. Même si mettre une ville devant un CP n'est pas logique (enfin pour moi ca l'est pas ).

    Après tu peux toujours mettre un commentaire en dessous du champs pour mettre un exemple d'adresse et vérifier direct en javascript que le format est respecté.

    Ou sans parler de format, plusieurs modèles qui rentrent dans tes règles de gestion. Car si rien qu'un seul passe à travers, ca foire tout ton traitement derrière.

    Enfin pour les ressemblance je disais ca car dans mon département, j'ai une ville qui s'appelle : Saint-Vicent-De-Tyrosse.

    Les gens disent toujours Tyrosse. Et oui j'ai vu des gens écrire "Thiroce" sur mon site .. et là je doute que des fonctions soit assez puissantes pour retrouver ca :s Je suis vite passer à jquery et l'autocomplete pour éviter ces erreurs.

  14. #14
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je ne comprends toujours pas pourquoi ne pas faire un formulaire avec un champ séparé pour chaque élément:
    • numéro
    • rue
    • ville
    • CP

    C'est ce qui se fait sur les sites ou des adresses précises sont demandées.

  15. #15
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Je ne comprends toujours pas pourquoi ne pas faire un formulaire avec un champ séparé pour chaque élément:
    • numéro
    • rue
    • ville
    • CP

    C'est ce qui se fait sur les sites ou des adresses précises sont demandées.
    Oui, pour un ajout dans une base de données, mais pas pour un moteur de recherche.

  16. #16
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par bob633 Voir le message
    Et s'il écrit :
    Appartement 01300 Résidence de de Lyon 10 impasse de paris 33000 Bordeaux

    Ou alors qu'il commence par
    Bordeaux 33000

    Enfin on sait pas ce que peut penser l'utilisateur .. Même si mettre une ville devant un CP n'est pas logique (enfin pour moi ca l'est pas ).

    Après tu peux toujours mettre un commentaire en dessous du champs pour mettre un exemple d'adresse et vérifier direct en javascript que le format est respecté.

    Ou sans parler de format, plusieurs modèles qui rentrent dans tes règles de gestion. Car si rien qu'un seul passe à travers, ca foire tout ton traitement derrière.

    Enfin pour les ressemblance je disais ca car dans mon département, j'ai une ville qui s'appelle : Saint-Vicent-De-Tyrosse.

    Les gens disent toujours Tyrosse. Et oui j'ai vu des gens écrire "Thiroce" sur mon site .. et là je doute que des fonctions soit assez puissantes pour retrouver ca :s Je suis vite passer à jquery et l'autocomplete pour éviter ces erreurs.

    Oui, l'autocompletion sera mise en place, c'était prévu, mais tu n'es pas obligé de suivre une autocompletion, tu peux très bien faire ta propre saisie.

  17. #17
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par PIEPLU Voir le message
    Oui, pour un ajout dans une base de données, mais pas pour un moteur de recherche.
    Comme suggéré plus haut, pour le moteur de recherche, utilise les indexes fulltext: http://dev.mysql.com/doc/refman/5.0/...xt-search.html

    Une requête du genre serait sûrement à même de satisfaire les demandes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM adresses WHERE MATCH(adresse, ville, rue, cp) AGAINST (:input)

Discussions similaires

  1. Découper en octet une adresse ip
    Par Lekno dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 16/01/2014, 16h59
  2. Comment découper une adresse postale en plusieurs parties
    Par arnaudperfect dans le forum Langage
    Réponses: 12
    Dernier message: 19/08/2008, 00h31
  3. Réponses: 5
    Dernier message: 25/03/2003, 18h27
  4. commande dos pour résoudre une adresse ip
    Par stephy dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2002, 15h04
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 18h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo