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 :

Fonction preg_match et gestion des accents [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Points : 134
    Points
    134
    Par défaut Fonction preg_match et gestion des accents
    Bonjour,

    J'utilise la fonction preg_match pour récupérer le premier mot d'une phrase...seulement celle-ci s'arrête quand elle rencontre un caractère accentué.

    Voici la fonction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
            $texte = $this->result['var_intitule'];
            $mot = '';
            if (preg_match('/^(.+)\b/U', $texte, $matches)) {
                $mot = $matches[1];
            } else {
                $mot = $texte; # Pour parer tout éventualité
            }
            echo $mot;
     ?>

    Je m'explique si le $texte= école alors $mot=é, comment récupérer le mot en entier?

    Merci d'avance!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton code fonctionne chez moi.
    tu as fais un var_dump($mot); pour controler ce que contient vraiment la variable ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Purement et simplement une locale inappropriée. Il faut corriger celle-ci de manière globale ou locale (fonction setlocale).

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Points : 134
    Points
    134
    Par défaut
    ou simplement utiliser la fonction explode()!

    Julp j'utlisais justement une de tes fonctions (cf: http://www.developpez.net/forums/d28...remier-phrase/)


    Merci à tous!

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Points : 134
    Points
    134
    Par défaut
    Comment "exploder" plusieurs caractères dans une phrase.

    Exemple:

    maPhrase= école/ouverte de la ville.
    je veux qu'il me récupère que le mot école? pour l'instant il me récupère école/ouverte ...ce qui est faut mais je vais pas faire des explode d'explode à l'infini??

    PS: à la place de "/" je pourrai avoir un "-" une "," ou encore "(".

    Merci d'avance!

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    On en revient aux expressions régulières sinon après (que ce soit avec preg_match ou preg_split avec la question de la locale sur \b, \w, les classes pré-déterminées, ...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $maPhrase= "école/ouverte de la ville";
    var_dump(
        preg_split('~[[:punct:]\s]~', $maPhrase, -1, PREG_SPLIT_NO_EMPTY)
    );
     
     
    if (preg_match('~^[^[:punct:]\s]*~', $maPhrase, $m)) {
        var_dump($m[0]);
    }
    ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Points : 134
    Points
    134
    Par défaut
    Super merci!

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

Discussions similaires

  1. [awk] Fonction printf et gestion des accents
    Par Gothan44 dans le forum Shell et commandes POSIX
    Réponses: 58
    Dernier message: 06/11/2013, 11h09
  2. Gestion des accents avec la fonction UploadFile
    Par doozolab dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/10/2013, 12h34
  3. [EZPDF] gestion des accents
    Par cyreel dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 26/06/2007, 18h59
  4. [Regex] gestion des accents dans un mot
    Par joseph_p dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 10/05/2006, 09h04
  5. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41

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