1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
function ressemblance($chaine_recherchee, $chaine_de_contenu) {
//on supprime des caracteres de la chaine recherchée, n'entrant pas en compte dans le calcul de la ressemblance.
//trim() sert a supprimer les espaces potentielles en debut et fin de chaine.
//et strtolower() renvoie la chaîne en minuscules
echo $chaine_recherchee.'>>>>'.$chaine_de_contenu.'->>>';
//on renvoie aussi la chaîne de contenu en minuscules et on explose les chaines, pour obtenir des tableaux
$explode_contenu = explode(" ", strtolower(trim(str_replace(array(".", ",", ";", ":" ), "", $chaine_de_contenu))));
$explode_cle = explode(" ", strtolower(trim(str_replace(array(".", ",", ";", ":" ), "", $chaine_recherchee))));
//on compte le contenu des tableau
$count_tab_cle = count($explode_cle);
$count_tab_contenu = count($explode_contenu);
//on compare les tableaux
for($i = 0; $i != $count_tab_contenu; $i++) $pointage[$i] = (in_array($explode_contenu[$i], $explode_cle))?1:0;
// on calcule la somme des valeurs du tableau, et on la retourne sous forme de pourcentage
return round(((array_sum($pointage)/$count_tab_contenu)*100), 2) . "%";
} |
Partager