ignorer les balises HTML avec expression régulière - PHP - Programmation
Marsh Posté le 05-05-2004 à 17:07:15
pose la question dans PERL sans trop parler de php eux ils sont balese dans expression réguliere !
Marsh Posté le 05-05-2004 à 17:12:33
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!
Marsh Posté le 05-05-2004 à 17:27:49
Ca n'empêche pas du tout qu'un cador du php me vienne en aide ici... ;-)
Marsh Posté le 05-05-2004 à 18:36:55
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
Marsh Posté le 05-05-2004 à 19:02:51
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
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
Marsh Posté le 06-05-2004 à 10:31:32
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)...
Marsh Posté le 06-05-2004 à 19:26:50
Code :
|
hmm ?
Marsh Posté le 06-05-2004 à 19:37:16
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?
Marsh Posté le 05-05-2004 à 16:26:15
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?