Bonjour,

Je suis actuellement en train de mettre en place un moteur de recherche sur un forum.
J'ai suivi le tutoriel dont j'ai repris le remplacement des lettres accentuées :
http://sqlpro.developpez.com/cours/indextextuelle/

J'en arrive au script de nettoyage d'un message, je cherche à couvrir toutes les solutions possibles (je ne garde que les mots d"au moins 2 lettres).

J'ai fait ce petit bout de code mais je pense qu'il y a moyen de l'améliorer ou de l'optimiser (niveau preg_replace surtout je pense) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
     // Enleve les tags et met en minuscule
     $message = strtolower(strip_tags($message));
     // Change tous les accents
     $message = strtr($message , 'ÀàÁáÂâÃãÄäÅåÇçÉéÈèÊêËëÌìÍíÎîÏïÑñÒòÓóÔôÕõÖöÙùÚúÛûÜüÝýŸÿ', 'aaaaaaaaaaaacceeeeeeeeiiiiiiiinnoooooooooouuuuuuuuyyyy');
     // Remplace quelques cas particuliers
     $message = str_replace(array('Æ','æ','Œ','œ'), array('ae','ae','oe','oe'), $message );
     // Remplace tous ce qui est non alphanumerique en espace
     $message = preg_replace('#[^a-z0-9]#', ' ', $it_message);
     // Retire tous les mots de 1 lettre
     $message = preg_replace('#(^|[[:blank:]])[a-z0-9]([[:blank:]]|$)#', ' ', $it_message);
     // Remplace les espaces multiples par un seul espace
     $message = preg_replace('#[[:blank:]]+#', ' ', $message );
     // Effacer les espaces au debut et a la fin
     $message = trim($message);
Merci pour votre aide