Essai de recherche floue
Entrez un mot:
Algo: soundex metaphone phonetique soundex_fr
HTML; function getTime() { $a = explode (' ',microtime()); return(double) $a[0] + $a[1]; } $Start = getTime(); # Chargement de la liste des mots. $liste=array(); $filename='liste_francais.txt'; $fp = @fopen($filename, 'r'); if ($fp) { $liste = explode("\n", fread($fp, filesize($filename))); } echo count($liste)." mots chargés.
"; // Compare un mot ($mot) à une liste ($liste) // en utilisant la fonction ($fonction). // Exemple: $resultats = filtre($mot,$liste,'soundex'); function filtre($mot,$liste,$fonction) { $resultat = array(); $mot_p = call_user_func($fonction,$mot); foreach($liste as $m) { $p = call_user_func($fonction,$m); $pourcentage = levenshtein($mot_p,$p)*100/strlen($mot); if ($pourcentage<=5) $resultat[]=$m; } return $resultat; } if (!empty($_GET['mot']) && !empty($_GET['algo'])) { $mot = $_GET['mot']; $algo = $_GET['algo']; echo '
Recherche du mot '.htmlspecialchars($mot)." avec l'algo ".htmlspecialchars($algo).'
'; echo 'Mots proches: '.implode(', ',filtre($mot,$liste,$algo)).''; } $End = getTime(); echo "
Temp d'exection: ".number_format(($End - $Start),2)." secs"; echo ''; ?>