Mettre des mots en évidence Version 4 posté par Jukien (ID : 108)
En me penchant sur une optimisation de la version 3, je propose une amélioration permettant de coloriser des mots entre les balises, genre
strong que j'ai ajouté dans la phrase d'origine pour le test.
<?php
$ch='Les regex php, c\'est sympa, mais on peut les mettre en
avant avec la balise <strong>strong</strong>.
Un exemple, en image <img src="test.gif" alt="une regex en image" />.';
function marque_mot($ch,$mot)
{
$tab=preg_split('`(</?[a-z]+[^>]*>)`i',$ch,-1,PREG_SPLIT_DELIM_CAPTURE);
foreach($tab as $key=>$val){
if(strpos($val, '<') === 0)
{
$tab[$key]=$val;
}
else
{
$tab[$key]=preg_replace('`\b'.$mot.'\b`i','<span style="background-color:#ffcc00">$0</span>',$val);
}
}
return implode($tab);
}
$mot_a_trouver='strong';
echo marque_mot($ch,$mot_a_trouver);
?>