$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); } 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; ($j = $longueur - $i - 1) >= MIN_LETTRES_MOT_2; $i++) { foreach ($dico[$i] as $mot => $definition) { foreach (mots_espaces($j, $nb_mots_restants) as $mots) { if (!in_array($mot, $mots)) { yield [$mot, ...$mots]; if (--$nb_mots_restants <= 0) return; yield [...$mots, $mot]; if (--$nb_mots_restants <= 0) return; } } } } }