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 :

Utilisation de ereg [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Points : 752
    Points
    752
    Par défaut Utilisation de ereg
    Bonjour,

    J'ai une chaine $tpl, contenant "bonjour, {/IF}, blabla".
    J'arrive à détecter {/IF avec ereg('^(.*)\{/IF(.*)$', $tpl, $main_tpl);
    Mais je n'arrive pas à détecter {/IF} avec ereg('^(.*)\{/IF\}(.*)$', $tpl, $main_tpl);
    Comment cela se fait-il? Cela fait un moment que je cherche, mais rien n'y fait.

    Merci d'avance,
    ProgVal

  2. #2
    Membre actif Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Points : 219
    Points
    219
    Par défaut
    Citation Envoyé par http://fr.php.net/ereg
    Note: preg_match(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide de ereg().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $str="bonjour, {/IF}, blabla";
    if(preg_match('#^.*{/IF}.*$#',$str)){
    	echo 'ok';
    }

  3. #3
    Membre éclairé
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Points : 752
    Points
    752
    Par défaut
    Bonjour et merci pour ta réponse.

    Je ne veux pas détecter (désolé, je me suis trompé de mot), mais séparer en deux.

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Salut,

    Si le but est juste de séparer, il n'est peut-être pas besoin des expressions régulières
    Ceci si {/IF} est vriament le séparateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $str="bonjour, {/IF}, blabla";
    $tableau = explode('{/IF}', $str);
    les regex n'entrant en jeu que si le séparateur est plus compliqué:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $str="bonjour, {/IF}, blabla";
    $tableau = preg_split('#\s*,\s*{/IF}\s*,\s*#', $str);

  5. #5
    Membre éclairé
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Points : 752
    Points
    752
    Par défaut
    En fait, j'essayais de simplifier, pour que ça sois plus simple à comprendre.

    La véritable valeur de $str est:
    {IF.forums_in} {COMMENT}Si il y a des forums à l'intérieur de celui-ci{/COMMENT}
    <table style="width: 100%;" class="visible_table">
    <tr>
    <th style="width: 1px; max-width: 10%; text-align: center;">Nouveaux messages</th>
    <th style="text-align: center;">Description</th>
    <th style="text-align: center; width: 10%;">Messages & topics</th>
    </tr>
    {BEGIN.FORUM}
    <tr>
    <td style="text-align: center;">{FORUM.nb_new}</td>
    <td style="text-align: center;">{FORUM.title}<br /><br />{FORUM.description}</td>
    <td style="text-align: center;">{COUNT.messages} message(s) dans {COUNT.topics} topic(s)</td>
    </tr>
    {END.FORUM}
    </table>
    {/IF}
    {IF.is_not_cat} {COMMENT}Si ce n'est pas une catégorie{/COMMENT}
    {IF.topic_in} {COMMENT}Si il y a des sujets à l'intérieur{/COMMENT}
    {/IF}
    {IF.no_topic_in} {COMMENT}Si il n'y a pas de sujet à l'intérieur{/COMMENT}
    {/IF}
    {/IF}
    et la RegEx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ereg('^(.*)\{IF.forums_in\}(.*)\{/IF\}(.*)$', $tpl, $main_tpl);
    Or, {IF.forums_in} est détecté, mais pas {/IF}...

  6. #6
    Membre éclairé
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Points : 752
    Points
    752
    Par défaut
    Problème résolu en utilisant:
    preg_match('#^(.*)\{IF\.forums_in\}(.*)\{/IF\}(.*)$#U', $tpl, $temp);

    (comme quoi, ça sert de savoir chatter en Anglais ^^)

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

Discussions similaires

  1. [RegEx] Expressions régulières utilisation de "ereg"
    Par jojo33bx dans le forum Langage
    Réponses: 10
    Dernier message: 10/12/2006, 21h46
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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