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 :

Encore les regex [Tutoriel] [RegEx]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    Points : 31
    Points
    31
    Par défaut Encore les regex
    Bonjour à tous !

    je me demandais si il existait une séquence du type [[:alnum:]] ou [[:alpha:]] pour les caractères alphanumériques accentués ?

    Parce que j'aimerais bien autoriser les caractères alphanumériques et les alphanumériques accentués sans devoir les rentrer un par un dans un ereg()

    Merci d'avance.

  2. #2
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Salut, la classe \w gere les caracteres alphanumériques et accentués si le serveur est configuré dans une langue comportant des accents.

    Pour configurer un script dans une certaine langue, il faut utiliser setlocale().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_ALL, 'fr');
    Seulement c'est bien beau la théorie, mais pour moi ca n'a jammais marché sous freeBSD.

    Je pense donc qu'il faut raisonner avec un serveur US pour garder un maximum de compatibilité.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    J'ai lu ça quelquepart mais je ne me souviens plus ou.
    J'ai testé aussi et ça ne fonctionne pas chez moi non plus (environnement Linux Fedora Core 2)

    Dans ce cas personne s'est déjà fait un ereg() pour accepter les caractères alphanum + alphanum accentués.

    Je sais je suis fénéant mais j'ai peur d'en oublier...

  4. #4
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Je viens d'aller voir sur la doc et quelqu'un a trouvé le code miracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_ALL, 'fr_FR.ISO8859-1');
    ca marche

    par contre, ca risque de ne pas marcher sur tous les serveurs.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    C'est pas vrai !
    Le truc archi simple

    Donc un petit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    setlocale(LC_ALL, 'fr_FR.ISO8859-1');
    //Ensuite un :
    ereg('^[[:alnum:]]+$', $truc)
    //Et ça fonctionne ?
    Tu me confirmes ?

  6. #6
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Apres test pas avec les fonction posix, par contre pcre ca marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setlocale(LC_ALL, 'fr_FR.ISO8859-1');
    preg_match('/(\w)/', $chaine);

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    En effet ça fonctionne très bien !

    J'ai testé sur deux configs bien différentes :

    Linux Fedora Core 2, Apache 2.0.51, php 4.3.8
    et
    Windows XP Pro, Apache 2.0.52, php 4.3.9

    Merci beaucoup doof

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Sur Debian Woody le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_ALL, 'fr_FR.ISO8859-1');
    ne marche pas mais bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setlocale(LC_CTYPE, 'fr_FR.ISO-8859-1');


    LC_CTYPE
    for regular expression matching, character classi*
    fication, conversion, case-sensitive comparison,
    and wide character functions.
    J'avais également un problème d'accent pour les classes \w et les assertions \b

    Merci à Doof pour la piste.
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    J'aimerais bien le faire fonctionner avec des fonctions POSIX moi
    Ça doit bien faire 3 heures que je cherche à droite et à gauche et que je teste différents trucs sur le serveur mais ça veut pas.

    Pourtant il me semble bien que j'avais réussi un jour

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

Discussions similaires

  1. [IDE][VS2005-C++] Utilise-t-on encore les MFC ?
    Par philo71 dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 17/02/2006, 15h05
  2. ie / firefox, les regex
    Par Oreily dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 12/01/2006, 10h14
  3. [RegEx] Pb traitement de chaînes avec les regex
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2005, 00h00
  4. toujours et encore les boundingboxs de directx
    Par batosai dans le forum DirectX
    Réponses: 9
    Dernier message: 23/06/2004, 11h22
  5. Encore les requetes
    Par arsgunner dans le forum ASP
    Réponses: 22
    Dernier message: 16/06/2004, 14h59

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