Bout de script de nettoyage
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:
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