Dans mon application je recherche tous les textes qui contiennent un certain mot, par exemple Eglise, et je souhaite mettre les mots trouvés en surbrillance.
Tous les mots avec ou sans accents doivent être trouvés.

Pour ce faire je transforme le critère reçu (ici $critere="Eglise") avec des instructions preg_replace, c'est à dire dans le cas présent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$critere = preg_replace('/[eèéêë]/i', '(e|è|é|ê|ë)', $critere);
$critere = preg_replace('/[iìíîï]/i', '(i|ì|í|î|ï)', $critere);
Ensuite je lance la recherche du critère dans mon texte avec une instruction preg_match :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$nb=preg_match_all($critere, $texte, $matches, PREG_OFFSET_CAPTURE);
Il se trouve que seuls Eglise et eglise sont trouvés, mais pas église

Merci à qui pourra me dire où est mon problème.
Caperquy