Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
960 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Preg replace surligner des mots mais pas des balises

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Preg replace surligner des mots mais pas des balises

n°1864456
NewsletTux
<Insérez ici votre vie />
Posté le 22-03-2009 à 10:41:01  profilanswer
 

Hello,
 
j'ai un  petit script de recherche dans un de mes sites que je souhaite améliorer. Actuellement, l'utilisateur entre son texte recherché puis voit des liens. Chaque lien retourné est du type {url_page}?highlight=mot-clé
 
Et dans la page, j'ai bien mes mots clés recherchés en surligné. Je le fais ainsi :
 

Code :
  1. $page_content = preg_replace("/($highlight)/i","<span class=\"highlight\">$1</span>",$page_content);


 
Mais voilà, le hic est ici :
$page_content contient le code HTML (juste un des conteneurs du body, puisque mon site utilise un template) et c'est sur TOUT ce code HTML de la variable qu'est effectuée la recherche.
Ce qui peut conduire à un résultat tel que (un exemple de source) :
 
Page "seule" (sans surlignage)

Code :
  1. <h2 id="sous-cat1">Exemple de sous catégorie</h2>


 
page appelée via le moteur de recherche avec surlignage du mot "sous" : {URL_PAGE}?highlight=sous
 

Code :
  1. <h2 id="<span class="highlight">sous</span>-cat1">Exemple de <span class="highlight">sous</span> catégorie</h2>


 
Alors effectivement mettre le span, sur le contenu du H2, très bien mais pas sur son ID...
 
Existe-t-il une solution ?
Merci pour vos éclaircissements.


Message édité par NewsletTux le 22-03-2009 à 10:41:16

---------------
NewsletTux - outil de mailing list en PHP MySQL
mood
Publicité
Posté le 22-03-2009 à 10:41:01  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Preg replace surligner des mots mais pas des balises

 

Sujets relatifs
Comment faire une recherche avec plusieurs mots?Préremplir un bouton radio avec une valeur et supprimer balises <br />
Surligner une ligne d'un paragraphe au passage de la sourispreg_replace : problèmes d'expression régulière
Warning: preg_match() [function.preg-match] j'ai besoin d'un aidé[PHP] Interpréter les balises html dans une textarea
Remplacer texte entre deux balises html ?[PL/SQL] create or replace matable?
Plus de sujets relatifs à : Preg replace surligner des mots mais pas des balises


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR