Colorer résultat d'une recherche

Résolu/Fermé
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 6 sept. 2016 à 10:13
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 11 sept. 2016 à 01:17
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
6 sept. 2016 à 11:26
1
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
Modifié par arthezius le 11/09/2016 à 01:22
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