preg_replace et surbrillance
Posté : 03 févr. 2012, 09:50
Bonjour,
je rencontre un problème pour mettre en surbrillance des mots issus d'une recherche utilisateur. Voici la recherche :
médecin généraliste
le moteur retourne toutes les fiches qui ont pour mots : médecin ou medecin ou MEDECIN ou généraliste ou generaliste ou GENERALISTE.
Mon problème c'est la surbrillance des mots recherchés, elle ne s'applique que sur "généraliste". médecin avec ou sans accents majuscules et generaliste / GENERALISTE ne sont pas mis en surbrillance. Voici le code :
Comment faire pour que tout les mots (majuscules, minuscules accents, sans accents) soient mis en surbrillance ? J'ai essayé avec str_ireplace, mais le problème de cette fonction c'est qu'il met en surbrillance un partie du mot contenu dans un autre (ex : recherche "conseille" il va mettre en surbrillance le "conseille" de "téléconseiller") et les utilisateurs ne souhaitent pas ça.
Je suis preneur de toutes vos idées. Je continue à chercher de mon côté.
Merci pour votre aide.
@+ tard.
je rencontre un problème pour mettre en surbrillance des mots issus d'une recherche utilisateur. Voici la recherche :
médecin généraliste
le moteur retourne toutes les fiches qui ont pour mots : médecin ou medecin ou MEDECIN ou généraliste ou generaliste ou GENERALISTE.
Mon problème c'est la surbrillance des mots recherchés, elle ne s'applique que sur "généraliste". médecin avec ou sans accents majuscules et generaliste / GENERALISTE ne sont pas mis en surbrillance. Voici le code :
Code : Tout sélectionner
for ($j=0;$j<$nb_mots_surbrillance;$j++){
if ($tab_surbrillance[$j] != "") {
$chaine_titre = preg_replace("#\b".$tab_surbrillance[$j]."\b#i","<span class=\"surbrillance\">".$tab_surbrillance[$j]."</span>", $titre);
$chaine_resume = preg_replace("#\b".$tab_surbrillance[$j]."\b#i","<span class=\"surbrillance\">".$tab_surbrillance[$j]."</span>", $resume_affiche);
}
}
Je suis preneur de toutes vos idées. Je continue à chercher de mon côté.
Merci pour votre aide.
@+ tard.