Si vous faites la recherche et remplacer le texte, cela est facile:
$text = 'windows xp';
$input = '....';
$output = str_replace($text, '<em>' . $text . '</em>', $input);
Si vous avez un bloc de HTML stocké sous forme de chaîne, il est une autre question à Considérez: que se passe-t-il si le texte recherché par l'utilisateur fait partie d'un nom ou d'une valeur d'étiquette ou d'attribut? Si vous voulez mettre en évidence « forte » vous ne voulez pas remplacer:
<strong>some text</strong>
avec:
<<em>strong</em>>some text</<em>strong</em>>
que votre balisage ne sera plus valide.
C'est le problème avec l'utilisation simple de recherche et de remplacement ou des expressions régulières sur le balisage. La meilleure façon de gérer cela est de convertir en balisage dans un arbre DOM puis de le faire en remplaçant les nœuds de texte. Même cela a des problèmes. Si vous voulez mettre en évidence « Windows XP » voulez-vous mettre en évidence ce cas:
windows <i>xp</i>
Th il apparaît comme euse « windows xp » il est donc raisonnable de supposer que l'utilisateur voudra souligner que.
Est-ce un type de recherche et de remplacement que vous voulez? Si oui, est-ce en texte brut ou HTML? – cletus
c'est un corps et je veux le trouver avec php. sorte d'un utilisateur entrer un mot-clé et je le souligne. – ajsie