Essai de recherche floue
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 '