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 :
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 :
$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
Partager