Colorer résultat d'une recherche

Résolu
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -  
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans mes scripts de recherche, j'aime bien colorer les termes de la recherche dans le résultat.
Exemple:
Si dans le texte suivant:
Quam ob rem cave Catoni anteponas ne istum quidem ipsum, quem Apollo, ut ais, sapientissimum iudicavit; huius enim facta, illius dicta laudantur. De me autem, ut iam cum utroque vestrum loquar, sic habetote.

Je cherche le mot "sapientissimum", j'aimerai que le résultat de la recherche colore le mot en affichant le résultat.
J'avais trouvé un script simple me permettant de le faire.
Je lance la requête avec LIKE "%'.$recherche.'%" et j'utilisais ceci pour traité l'affichage:
$text = eregi_replace($recherche, "<span style=\"background:#ff0;\">\\0</span>",$text);

Toutefois, ça ne fonctionne plus avec PHP7 car le fonction eregi_replace n'est plus d'actualité.
Il faudrait utiliser la fonction preg_replace à la place.

Auriez-vous des idées pour adapter mon script?
J'ai essayé sans succès.

Merci par avance pour votre aide.

1 réponse

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
1
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Merci pour le lien.
En recoupant avec le doc de PHP (https://www.php.net/manual/fr/function.preg-replace.php ), j'ai fini par comprendre et ça semble fonctionner.

J'ai modifié:
$text = eregi_replace($recherche, "<span style=\"background:#ff0;\">\\0</span>",$text);

Qui devient:
$text = preg_replace('/'.$recherche.'/', "<span style=\"background:#ff0;\">$0</span>",$text);
0