$auteur"; break; } $mot = strtoupper($mot); $longueur = strlen($mot); if (!isset($dico[$longueur])) { $dico[$longueur] = []; } if (!isset($dico[$longueur][$mot])) { $dico[$longueur][$mot] = []; } if (strlen($definition)) { $dico[$longueur][$mot][] = $definition; } } fclose($lecteur); } foreach ($dico as $longueur => $mots) { foreach ($mots as $mot => $definitions) { if (count($definitions)) { $dico[$longueur][$mot] = $definitions[array_rand($definitions)]; } else { $dico[$longueur][$mot] = ""; } } } function mots_espaces($longueur, $nb_mots_restants=MAX_MOTS) { global $dico; foreach ($dico[$longueur] as $mot => $definition) { yield $mot; if (--$nb_mots_restants <= 0) return; } for ($i = MIN_LETTRES_MOT_1; $longueur - $i - 1 >= MIN_LETTRES_MOT_2; $i++) { foreach ($dico[$i] as $mot1 => $definition) { foreach (mots_espaces($longueur - $i - 1, $nb_mots_restants) as $mot2) { if ($mot1 != $mot2) { yield "$mot1 $mot2"; if (--$nb_mots_restants <= 0) return; yield "$mot2 $mot1"; if (--$nb_mots_restants <= 0) return; } } } } }