Surligner un texte en PHP

La fonction PHP suivante vous permet d’entourer un morceau de texte recherché par une balise HTML, de manière à pouvoir le mettre en avant en CSS. Cela peut être utile si vous souhaitez surligner le mot saisi par l’utilisateur dans les résultats de recherche par exemple.

La fonction prend en paramètres : le texte recherché à surligner, le texte complet, ainsi qu’un paramètre permettant de contraindre la recherche à être sensible à la casse.

function highlightText($q, $string, $casesensitive=false){
	$modifier = ($casesensitive) ? 'i' : '';
	$quotedSearch = preg_quote($q, '/');
	$checkpattern = '/'.$quotedSearch.'/'.$modifier;
	$strreplacement = '<span class="highlight">$0</span>';
	return preg_replace($checkpattern, $strreplacement, $string);
}

 

Usage

echo highlightText('recherche', 'Votre recherche contient 12 résultats');
Votre <span class="highlight">recherche</span> contient 12 résultats