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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    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 confirmé
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    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
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    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 confirmé
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    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
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    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 confirmé
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    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
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    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 Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    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.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    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