Petit nouveau ! |
5 Messages
26 juil. 2014, 14:43
Bonjour,
La première chaîne de caractères est issue des mots entrés que je transforme en tableau pour isoler mes deux mots.
La deuxième chaîne est issu d'un fichier pdf décodé en tableau puis soumis à un explode.
array_map() ne me renvoie rien dans l'état actuel du code.
Sous cette forme le code me retourne X-fois l'écho présent dans la fonction pour chaque mot entré.
<?php
$input1 = $_POST['phrase'];
echo "Entrée : ".$input1."</br>";
$compte=str_word_count($input1, 0);
echo "Nombre de mots : ".$compte."</br>";
$tableau=explode(" ",$input1);
function mots($wort) {
include('class.pdf2text.php');
$a = new PDF2Text();
$a->setFilename('dico2.pdf');
$a->decodePDF();
$words=explode(" ",$a->output());
$shortest = -1;
// boucle sur les des mots pour trouver le plus près
foreach ($words as $word) {
// calcule la distance avec le mot mis en entrée,
// et le mot courant
$lev = levenshtein($wort, $word);
// cherche une correspondance exacte
if ($lev == 0) {
// le mot le plus près est celui-ci (correspondance exacte)
$closest = $word;
$shortest = 0;
// on sort de la boucle ; nous avons trouvé une correspondance exacte
break;
}
// Si la distance est plus petite que la prochaine distance trouvée
// OU, si le prochain mot le plus près n'a pas encore été trouvé
if ($lev <= $shortest || $shortest < 0) {
// définition du mot le plus près ainsi que la distance
$closest = $word;
$shortest = $lev;
}
echo "Séquence entrée : ".$wort."<br>";
if ($shortest == 0) {
echo "Correspondance exacte trouvée : ".$closest."</br>";
} else {
echo "Proposition : ".$closest. "</br>";
}
}
}
foreach ($tableau as $wort) {
mots($wort);
}
?>