mettre en gras une chaine recherchee mais pas dans les tags HTML
2 réponses
Khorne
Bonjour,
suite à une recherche sur un texte contenant des tags HTML, je voudrais
mettre en gras la chaine recherchée dans le texte sans toucher aux tags HTML
et surtout sans mettre du gras a l'interieur d'une balise si la chaine
recherchée si trouve.
ex:
<font color="#FFFFFF">This color is black</font>
après recherche:
<font color="#FFFFFF"><B>This color is black</B></font>
Je pense que la 1er étape serait de mettre toutes les occurences de la
chaine recherchée en gras meme a l'intérieur des balises, comme ca:
$data = preg_replace("/($word)/i", "<b>\\1</b>", $data); // data est le
texte et word la chaine recherchée
et ensuite de supprimer les tags <B> et </B> autour des occurences se
trouvant dans des balises HTML.
C'est la dessus que je ne trouve pas comment faire le masque. J'en ai un
mais qui ne marche que sur le nom de la balise (dans mon exemple: font)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
P'tit Marcel
Khorne écrivit:
suite à une recherche sur un texte contenant des tags HTML, je voudrais mettre en gras la chaine recherchée dans le texte sans toucher aux tags HTML et surtout sans mettre du gras a l'interieur d'une balise si la chaine recherchée si trouve. ex: <font color="#FFFFFF">This color is black</font> après recherche: <font color="#FFFFFF"><B>This color is black</B></font>
essaye un masque du genre : '`(?<=>)([^<]*color[^<]*)`'
en supposant que color est le mot à chercher. Au passage, si t'écrivais en français, le problème ne se poserait pas ;-)
NB: j'ai un peu compliqué le masque juste pour le fun!
-- P'tit Marcel
Khorne écrivit:
suite à une recherche sur un texte contenant des tags HTML, je
voudrais mettre en gras la chaine recherchée dans le texte sans
toucher aux tags HTML et surtout sans mettre du gras a l'interieur
d'une balise si la chaine recherchée si trouve.
ex:
<font color="#FFFFFF">This color is black</font>
après recherche:
<font color="#FFFFFF"><B>This color is black</B></font>
essaye un masque du genre :
'`(?<=>)([^<]*color[^<]*)`'
en supposant que color est le mot à chercher. Au passage, si t'écrivais en
français, le problème ne se poserait pas ;-)
NB: j'ai un peu compliqué le masque juste pour le fun!
suite à une recherche sur un texte contenant des tags HTML, je voudrais mettre en gras la chaine recherchée dans le texte sans toucher aux tags HTML et surtout sans mettre du gras a l'interieur d'une balise si la chaine recherchée si trouve. ex: <font color="#FFFFFF">This color is black</font> après recherche: <font color="#FFFFFF"><B>This color is black</B></font>
essaye un masque du genre : '`(?<=>)([^<]*color[^<]*)`'
en supposant que color est le mot à chercher. Au passage, si t'écrivais en français, le problème ne se poserait pas ;-)
NB: j'ai un peu compliqué le masque juste pour le fun!
-- P'tit Marcel
Guillaume Bouchard
Khorne wrote:
suite à une recherche sur un texte contenant des tags HTML, je voudrais mettre en gras la chaine recherchée dans le texte sans toucher aux tags HTML et surtout sans mettre du gras a l'interieur d'une balise si la chaine recherchée si trouve.
De nos jours ont ne met plus en gras, on met en important, via la balise strong, qui a un effet par defaut gras, mais qui est stylable.
<font color="#FFFFFF">This color is black</font>
De nos jours nous n'utilisons plus la balise font. Maitenant, ormit la solution de Ptit Marcel qui est 'achement complex, faut que je me remet à la page en matiere de regex... Je te propose une solution completement HS.
Tu remplaces tous tes mots pas <strong>le mot</strong> Dans une feuille CSS, tu style ton strong en gras.
Ce que tu ne veux pas c'est un certain type de balises encadre le strong, et bien tu faix
balise > strong { font-weight: normal; }
Voilà, pour plus de details, FU2+Xpost sur NG KiVaBien.
-- Guillaume.
Khorne wrote:
suite à une recherche sur un texte contenant des tags HTML, je voudrais
mettre en gras la chaine recherchée dans le texte sans toucher aux tags HTML
et surtout sans mettre du gras a l'interieur d'une balise si la chaine
recherchée si trouve.
De nos jours ont ne met plus en gras, on met en important, via la balise
strong, qui a un effet par defaut gras, mais qui est stylable.
<font color="#FFFFFF">This color is black</font>
De nos jours nous n'utilisons plus la balise font.
Maitenant, ormit la solution de Ptit Marcel qui est 'achement complex,
faut que je me remet à la page en matiere de regex... Je te propose une
solution completement HS.
Tu remplaces tous tes mots pas <strong>le mot</strong>
Dans une feuille CSS, tu style ton strong en gras.
Ce que tu ne veux pas c'est un certain type de balises encadre le
strong, et bien tu faix
balise > strong {
font-weight: normal;
}
Voilà, pour plus de details, FU2+Xpost sur NG KiVaBien.
suite à une recherche sur un texte contenant des tags HTML, je voudrais mettre en gras la chaine recherchée dans le texte sans toucher aux tags HTML et surtout sans mettre du gras a l'interieur d'une balise si la chaine recherchée si trouve.
De nos jours ont ne met plus en gras, on met en important, via la balise strong, qui a un effet par defaut gras, mais qui est stylable.
<font color="#FFFFFF">This color is black</font>
De nos jours nous n'utilisons plus la balise font. Maitenant, ormit la solution de Ptit Marcel qui est 'achement complex, faut que je me remet à la page en matiere de regex... Je te propose une solution completement HS.
Tu remplaces tous tes mots pas <strong>le mot</strong> Dans une feuille CSS, tu style ton strong en gras.
Ce que tu ne veux pas c'est un certain type de balises encadre le strong, et bien tu faix
balise > strong { font-weight: normal; }
Voilà, pour plus de details, FU2+Xpost sur NG KiVaBien.