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 :

bbcode melange de balises


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 499
    Par défaut bbcode melange de balises
    Bonjour à tous,

    Sur un moteur de recherche,
    1. je mets en forme les résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $regLienSimple = "\[url\] ?([^\[]*) ?\[/url\]";
    $regLienEtendu = "\[url ?=([^\[]*) ?] ?([^]]*) ?\[/url\]";
    if (ereg($regLienSimple, $message)) $message = ereg_replace($regLienSimple, "<a href=\"\\1\" target=\"_blank\">\\1</a>", $message);
    else $message = ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $message);
    2. je mets le mot recherché en évidence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $message = eregi_replace($mot,"<span class=\"mot_en_evidence\">".htmlentities($_POST['keyword'])."</span>", $message);
    Mon problème est le suivant : Si le mot recherché est dans une url du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [url = http://www.unsite.com/le-mot-recherche.php]le-mot-recherche[/url]
    Il va s'afficher la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [url = http://www.unsite.com/le-<span class="mot_en_evidence">mot-recherche</span>.php]le-<span class="mot_en_evidence">mot-recherche</span>[/url]
    Ce qui "bousille" le lien.

    Donc, j'aimerai mettre le mot en évidence SAUF si il est contenu dans une url.
    Quelqu'un a une idée ?

  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
    Bonjour,

    Pourrais-tu nous donner un cas de test qui soit directement exécutable, ie sans tableau $_POST ou autre variable dont nous ne disposons pas ?

  3. #3
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 499
    Par défaut
    Oui, bien sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $mot_recherche = "une-recherche";
    $message = htmlentities("[url = http://www.unsite.com/une-recherche.php]une-recherche[/url]");
     
    $regLienSimple = "\[url\] ?([^\[]*) ?\[/url\]";
    $regLienEtendu = "\[url ?=([^\[]*) ?] ?([^]]*) ?\[/url\]";
    if (ereg($regLienSimple, $message)) $message = ereg_replace($regLienSimple, "<a href=\"\\1\" target=\"_blank\">\\1</a>", $message);
    else $message = ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $message);
     
    $message = eregi_replace($mot_recherche,"<span class=\"mot_en_evidence\">".htmlentities($mot_recherche)."</span>", $message);
     
    echo $message;
    ?>
    ce qui donnera :
    <a href=" http://www.unsite.com/<span class="mot_en_evidence">une-recherche</span>.php" target="_blank"><span class="mot_en_evidence">une-recherche</span></a>

    Ce que je souhaiterai, c'est mettre la balise <span seulement lorsque le mot recherché n'est pas compris dans la balise [url

    Je ne sais pas si je suis clair ?

Discussions similaires

  1. [RegEx] preg_replace : conversion bbcode de la balise [list]
    Par mrdindo dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2008, 00h09
  2. BBCode sans afficher les balises [b], [u], ...
    Par xenos dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/12/2007, 19h01
  3. [RegEx] Balises type BBCode pour gérer la couleur du texte
    Par Neuromancien2 dans le forum Langage
    Réponses: 3
    Dernier message: 06/09/2007, 22h43
  4. Réponses: 9
    Dernier message: 23/07/2006, 20h18

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