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 preg_replace () [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de erehcab
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 215
    Par défaut Utilisation de preg_replace ()
    Bonjour à tous,

    Je dois effectuer un remplacement de caractères dans une chaine et je pense être obligé d'utiliser preg_replace (). Mon problème est que j'ai du mal à construire l'expression régulière qui va bien.

    Je vous explique :

    Voilà ma chaine de caractères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <li class="cat-item cat-item-6 current-cat"><a href="" title="">menu 1</a></li><li class="cat-item cat-item-5"><a href="" title="">menu 2</a></li><li class="cat-item cat-item-4"><a href="" title="">menu 3</a><span class="fin"></span>
    vous remarquerez que dans le premier composant <li> il y une class current-cat, lorsqu'un composant <li> contient cette class current-cat il faut que j'encadre le composant <a> par des balises <span> du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <li class="cat-item cat-item-6 current-cat"><span class="debut"></span><a href="" title="">menu 1</a><span class="fin"></span>
    </li>

  2. #2
    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 : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

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

    Voici un essai à adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $str = <<< EOS
    <li class="cat-item cat-item-6 current-cat"><a href="" title="">menu 1</a></li><li class="cat-item cat-item-5"><a href="" title="">menu 2</a></li><li class="cat-item cat-item-4"><a href="" title="">menu 3</a><span class="fin"></span>
    EOS;
     
    $reg = '#(<li class="[^"]*current-cat[^"]*">)(<a href[^>]+>[^<]+</a>)#';
    $rep = '$1<span class="debut"></span>$2<span class="fin"></span>';
     
    print preg_replace($reg, $rep, $str);

  3. #3
    Membre confirmé Avatar de erehcab
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 215
    Par défaut
    Salut merci pour ta réponse. Je viens de faire un test et cela ne fonctionne pas. Peux tu m'expliquer un peu le contenu de $reg et $rep afin que je puisse apporter les modifications nécessaires pour que cela fonctionne ?

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    testé chez moi avec ce code (c'est juste pour mettre en évidence les modifications) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <html>
    <head>
    <style type="text/css">
    .debut, .fin {font-weight:bold; background:#000; color:#FFF; padding:5px;}
    </style>
    </head>
    <body>
    <ul>
    <?php
    $str = '<li class="cat-item cat-item-6 current-cat"><a href="" title="">menu 1</a></li><li class="cat-item cat-item-5"><a href="" title="">menu 2</a></li><li class="cat-item cat-item-4"><a href="" title="">menu 3</a>';
     
    $reg = '#(<li class="[^"]*current-cat[^"]*">)(<a href[^>]+>[^<]+</a>)#i';
    $rep = '$1<span class="debut">a</span>$2<span class="fin">b</span>';
     
    echo preg_replace($reg, $rep, $str);
    ?>
    </ul>
    </body>
    </html>
    ça marche nickel...

  5. #5
    Membre confirmé Avatar de erehcab
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 215
    Par défaut
    Je vois pas, j'ai re testé avec tes modifications et ça ne me donne toujours rien ...

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    hmmmm *tente de deviner le code que tu as écrit* hmmmmm *concentration*

    ERROR UNABLE TO CONNECT TO [boule de cristal]

    Arf pas de chance, ma boule de cristal est en panne aujourd'hui...

    Tu pourrais donner ton code ?

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

Discussions similaires

  1. [RegEx] Utilisation de preg_replace()
    Par ShuTruK dans le forum Langage
    Réponses: 7
    Dernier message: 30/01/2008, 21h04
  2. [RegEx] Encodage et utilisation de preg_replace()
    Par Tchupacabra dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2008, 16h52
  3. [RegEx] Utilisation de preg_replace
    Par fadex dans le forum Langage
    Réponses: 3
    Dernier message: 06/01/2007, 10h50
  4. [RegEx] utilisation de preg_replace
    Par magdalena dans le forum Langage
    Réponses: 1
    Dernier message: 30/08/2006, 14h43
  5. [RegEx] utilisation de preg_replace sur des balises
    Par Kerod dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2005, 13h46

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