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

  FORUM HardWare.fr
  Programmation
  PHP

  ignorer les balises HTML avec expression régulière

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ignorer les balises HTML avec expression régulière

n°716447
guibo
Posté le 05-05-2004 à 16:26:15  profilanswer
 

Salut,
 
voilà le contexte: je suis en train de créer une fonction ayant pour but de surligner directement dans la page les termes trouvés par mon moteur de recherche.
 
voici le bout du code qui nous interresse:
 
$resultat = eregi_replace("($ereg)",'<span style="background-color: ff9999">\\0</span>', $string);
 
$ereg contient tous les termes recherchés séparés par "|"  
genre: "toto|papa|bibi"
 
J'aurais besoin de cantonner la recherche des termes en dehors des balises HTML pour éviter des catastrophes mais je suis perdu avec les syntaxes comme preg_replace('/^([^<].+[^>])$/e'
 
Quelqu'un aurait un indice?

mood
Publicité
Posté le 05-05-2004 à 16:26:15  profilanswer
 

n°716529
Berceker U​nited
PSN : berceker_united
Posté le 05-05-2004 à 17:07:15  profilanswer
 

pose la question dans PERL sans trop parler de php eux ils sont balese dans expression réguliere ! ;)

n°716548
guibo
Posté le 05-05-2004 à 17:12:33  profilanswer
 

J'ai posté dans PHP parce que j'avais commencé à utiliser eregi_replace et non preg_replace qui a une syntaxe un peu différente  
En tous cas, merci de ton conseil, je vais aller parler à ces PERLeux!

n°716588
guibo
Posté le 05-05-2004 à 17:27:49  profilanswer
 

Ca n'empêche pas du tout qu'un cador du php me vienne en aide ici... ;-)

n°716653
Berceker U​nited
PSN : berceker_united
Posté le 05-05-2004 à 18:36:55  profilanswer
 

oui biensur mais bon les expression réguliere de php sont issu du moteur perl, la plupart des perleux seront te répondosse mais au passage il me semble qu'il y a une fonction qui retire les balises html regarde la doc

n°716665
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-05-2004 à 19:02:51  profilanswer
 

Berceker United a écrit :

pose la question dans PERL sans trop parler de php eux ils sont balese dans expression réguliere ! ;)


 
Ne commence pas à inciter au multi-topic, c'est pas bien :o
Puis la section Perl est tellement déserte qu'il y a sûrement plus de monde qui pourra l'aider dans la section PHP :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°717055
guibo
Posté le 06-05-2004 à 10:31:32  profilanswer
 

Effectivement il y a la fonction "strip_tags" pour enlever les balises, mais ça n'est pas ce que je recherche.
 
If faut que mon expression régulière s'opère sur un bloc de texte qui contient du HTML sans toucher à celui-ci.
 
En fait j'ai en main la fonction suivante pour convertir notamment les > et < en caractères spéciaux HTML
 
$encoded = implode('', preg_replace('/^([^<].+[^>])$/e', "htmlentities('\\1')", preg_split('/(<.+?> )/', $string, -1, PREG_SPLIT_DELIM_CAPTURE)));
 
Donc en réalité je dois simplement faire en sorte que l'expression régulière ne considère QUE les zones de texte entre ">" et "<" c'est à dire comprises entre la fin de la balise HTML précédente et le début de la suivante (puisque tous les autres > et < sont convertis)...

n°717622
guibo
Posté le 06-05-2004 à 19:09:23  profilanswer
 

up  :-)

n°717629
Freekill
Electron libre…
Posté le 06-05-2004 à 19:26:50  profilanswer
 

Code :
  1. <?php
  2. $match = "bleh";
  3. $text = "<html><head></head><body>bla bla ,bleh bla <a href=\"bleh.htm\">bleh</a>bla bleh</body></html>";
  4. echo preg_replace("/(>[^<]*?)($match)([^>]*?< )/si","\\1<span style=\"color:red;\">\\2</span>\\3",$text);
  5. ?>


 
hmm ?

n°717646
the real m​oins moins
Posté le 06-05-2004 à 19:37:16  profilanswer
 

euh et le coco, s'il faisait plutot son bidule pour insérer ces <span> sur le contenu d'un message au moment de l'afficher plutot que sur le contenu complet de la page? :heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?

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

  ignorer les balises HTML avec expression régulière

 

Sujets relatifs
[HTML / CSS] Problème pour créer un petit menu horizontal[ASP 3.0] Envoi de mail + Mail format HTML
Page avec menu en (x)html/cssExpression reguliere checker si un string est borne par ','
Demande d'aide sur le code global de mon site (html, js, frames,...)[Fixed!][HTML] (Form) 'action' avec variables en GET ? (Pb)
[HTML] Frameset & form[HTML] Initialiser un input type="file"
Plus de sujets relatifs à : ignorer les balises HTML avec expression régulière


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)