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 :

Abréviation nom de ville


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    ...
    Inscrit en
    Avril 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : Avril 2009
    Messages : 49
    Points : 31
    Points
    31
    Par défaut Abréviation nom de ville
    Bonjour,

    Je me tourne vers vous car je cherche depuis un petit moment à résoudre un problème tout bête...

    J'ai un script qui va chercher des informations sur une ville dans ma bdd. Cependant avant d'aller chercher les informations je dois mettre en forme le nom de la ville : un exemple pour mieux comprendre

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //Le nom de la ville (invention pour bien illustrer le problème)
    $p = 'SAINT KERSAINT SAINTE PLABENNEC SAINTS';
    //On remplace les SAINT, SAINTE et SAINTS par ST, STE et ST
    $p2= str_ireplace("saint ","ST ",$p);  
    $p2= str_ireplace("sainte ","STE ",$p2);
    $p2= str_ireplace("saints ","ST ",$p2);

    Le problème c'est que je récupère : ST KERST STE PLABENNEC SAINTS
    au lieu de : ST KERSAINT STE PLABENNEC ST

    Je suppose qu'il faut utiliser une expression régulière pour lui faire comprendre qu'il ne faut traiter uniquement que les SAINT/E/S qui sont isolés ou bien en début ou fin de chaîne...

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    En poussant au bout la petite astuce que tu as déjà utilisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $p = 'SAINT KERSAINT SAINTE PLABENNEC';
    $p = ' ' . $p ; // Pour isoler le "SAINT" initial
    $p2= str_ireplace(" saint "," ST ",$p); // On ne remplace que les "saint" isolés
    $p2= str_ireplace(" sainte "," STE ",$p2); // ...
    $p2= str_ireplace(" saints "," ST ",$p2); 
    $p2 = substr($p2, 1) ; // Suppression du " " initial
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    ...
    Inscrit en
    Avril 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : Avril 2009
    Messages : 49
    Points : 31
    Points
    31
    Par défaut
    Ça ne marche pas j'obtiens toujours
    SAINT KERSAINT SAINTE PLABENNEC SAINTS => ST KERST STE PLABENNEC SAINTS

    Merci quand même Je poursuis mes recherches du côté des expressions régulières en attendant

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Je viens de tester ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $p = 'SAINT KERSAINT SAINTE PLABENNEC';
    $p = ' ' . $p ; // Pour isoler le "SAINT" initial
    $p2= str_ireplace(" saint "," ST ",$p); // On ne remplace que les "saint" isolés
    $p2= str_ireplace(" sainte "," STE ",$p2); // ...
    $p2= str_ireplace(" saints "," ST ",$p2); 
    $p2 = substr($p2, 1) ; // Suppression du " " initial
    Et cela me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ST KERSAINT STE PLABENNEC
    N'est-ce pas ce que tu voulais ?

    Ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SAINT KERSAINT SAINTE PLABENNEC SAINTS
    Donne cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ST KERSAINT STE PLABENNEC SAINTS
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    ...
    Inscrit en
    Avril 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : Avril 2009
    Messages : 49
    Points : 31
    Points
    31
    Par défaut
    Oui ça marche désolé, j'ai changé le nom de la ville en ajoutant un saint à la fin pour tester. En suivant ta logique il faudrait mettre un espace à la fin et ensuite l'enlever, je suppose que ça marche. Au final ce n'est peut être pas aussi propre qu'avec une expression régulière ?

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Au final ce n'est peut être pas aussi propre qu'avec une expression régulière ?
    Perso je les réserve à des tâches plus complexes
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    ...
    Inscrit en
    Avril 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : Avril 2009
    Messages : 49
    Points : 31
    Points
    31
    Par défaut
    Ok, donc on peut considérer que ceci est correct alors
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $p = 'SAINT KERSAINT SAINTE PLABENNEC SAINTE';
    $p = ' '.$p.' '; // Pour isoler le "SAINT" initial et final
    $p2= str_ireplace(" saint "," ST ",$p); // On ne remplace que les "saint" isolés
    $p2= str_ireplace(" sainte "," STE ",$p2); // ...
    $p2= str_ireplace(" saints "," ST ",$p2); 
    $p2 = substr($p2, 1) ; // Suppression du " " initial
    $p2 = substr($p2, 0, -1); // Suppression du " " final



    Edit : Au cas où, voici la solution avec une expression régulière
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $ville = 'SAINT KERSAINT SAINTE PLABENNEC SAINTS';
    $ville= preg_replace('#\b(SAINT)\b#i','ST',$ville);
    $ville = preg_replace('#\b(SAINTE)\b#i','STE',$ville);
    $ville = preg_replace('#\b(SAINTS)\b#i','ST',$ville);


    Merci de ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser des noms de villes dans un jeu
    Par wbaccari dans le forum Juridique
    Réponses: 2
    Dernier message: 12/04/2012, 17h19
  2. Nom des villes du monde
    Par sam01 dans le forum Débuter
    Réponses: 1
    Dernier message: 30/09/2010, 09h01
  3. Gestion des erreurs sur les noms des villes
    Par yosryosr dans le forum Pascal
    Réponses: 3
    Dernier message: 18/04/2008, 11h52
  4. gestions des erreurs sur les Noms des villes
    Par yosryosr dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2008, 12h07
  5. Fonction de normalisation Nom de ville
    Par Didier77 dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 19/07/2006, 13h01

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