Sortir un mot bien précis d'une chaine

CXII -  
Marden Messages postés 1075 Statut Membre -
Voilà, je me suis fait un petit moteur de recherche à un mot, dans une table, dont le champ contient une phrase.

J'aurais voulu pouvoir afficher le mot recherché surligné en jaune dans la phrase.

alors voilà, je me suis dit, il faut que je me mette un casseur de chaine (j'ai choisit explode()) et puis, il suffit de lui insérer entre un petit div pour la couleur, alors j'ai fait ça:

$textes = explode($motarechercher, $enrtext['texte']);
echo $textes[0];
echo '<div style="background:yellow">'.$motarechercher.'</div>';
echo $textes[1];

ce qui fonctionne très bien quand le mot est exactement identique, mais lorque le mot commence par une majuscule, ou qu'il y a un accent, ça fonctionne plus dutout!
alors, je suis callé, je ne sais pas quoi faire pour que celà fonctionne!

Si qqu'1 peut m'aider ça serrai cool

merci et @+
CXII

1 réponse

  1. Marden Messages postés 1075 Statut Membre 210
     
    Dans ce genre de problème, il faut passer par une copie du texte originel, avec conversion (tout en minuscules, remplacement des caractères accentués) en procédant de même pour le mot à chercher [dans la copie].
    L'affichage, quand le mot est trouvé (en pos), utilise le texte originel :
    de 0 à pos-1 : normal
    de pos à pos+long-1 : souligné
    de pos+long à fin : normal
    Si plusieurs occurences, itérer sur le processus d'affichage.
    0