/* **************************************************************** */ /* CONFIGURATION */ /* **************************************************************** */ $min_width = 1; // minimale wortlänge $max_width = 15; // maximale wortlänge $def_width = 4; // standard wortlänge $height = 15; // anzahl worteingabefelder $dictfiles = array( // wörterbuchdateien "Deutsche Wörter" => "german.dic", "Deutsche Städte" => "staedte.dic", "Deutsche Städte und Gemeinden" => "gemeinden.dic", "Englische Wörter" => "english.dic", "KFZ-Kennzeichen Deutschland" => "kfz.dic", "Automarken" => "autos.dic", "Tiere" => "tiere.dic" ); $width_modes = array( // modi für wortlänge "exakt", // "normal" "zwischen" // "spezial" ); // bei änderungen hier muss die logik // entsprechend angepasst werden /* **************************************************************** */ /* DEFAULTS */ /* **************************************************************** */ $width = $def_width; // gew. (max.) wortlänge $dict = 0; // nummer des gew. wörterbuchs $dictfile = current($dictfiles); // dateiname des gew. wörterbuchs $width_mode = 0; // modus für wortlänge /* **************************************************************** */ /* USER INPUT */ /* **************************************************************** */ if (isset($_GET['show_source'])) { header('Content-Type: text/plain; charset=utf-8'); readfile(__FILE__); exit; } if (isset($_REQUEST['width'])) { $user_width = intval($_REQUEST['width']); if ($user_width <= $max_width && $user_width >= $min_width) { $width = $user_width; } } if (isset($_REQUEST['width_mode'])) { $user_width_mode = intval($_REQUEST['width_mode']); if (!empty($width_modes[$user_width_mode])) { $width_mode = $user_width_mode; } } if (isset($_REQUEST['width_min'])) { $user_width_min = intval($_REQUEST['width_min']); if ($user_width_min < $max_width && $user_width_min >= $min_width) { $width_min = $user_width_min; } if (@$width_min >= $width) { $width = $width_min + 1; } } if (isset($_REQUEST['dict'])) { $user_dict = array_values($dictfiles); $user_dict = $user_dict[intval($_REQUEST['dict'])]; if (!empty($user_dict)) { $dict = intval($_REQUEST['dict']); $dictfile = $user_dict; } } /* **************************************************************** */ /* BEGINN DOKUMENT */ /* **************************************************************** */ ?> "> Lösungshilfe für "Wort mit <?php echo $width; ?> Buchstaben"

Platzhalter-Spiel

Wort-mit--Buchstaben-Rätsel

">
Einstellungen

Wieviele Buchstaben sollen die gesuchten Wörter haben?

und

Welches Wörterbuch soll benutzt werden?

(Quellen und Download)
#result">
Vorgabe

Hier werden Buchstaben vorgegeben, die auf jeden Fall zutreffen sollen.

Wird also nach "Wort, das mit einem P beginnt" gesucht, muss im ersten Feld das 'P' eingetragen werden.

'; } echo "
\n"; ?>
Ausschluss

Hier werden die Buchstaben vorgegeben, die an entsprechenden Stelle nicht im Wort vorkommen sollen.

Wird also in einer Reihe "WELT" eingegeben, wird nach Wörtern gesucht, die an erster Stelle kein 'W', an zweiter Stelle kein 'E', an dritter Stelle kein 'L' und an vierter Stelle kein 'T' enthalten. Gibt es für die entsprechende Position eine Vorgabe, wird das Ausschlusskriterium ignoriert.

'; } echo "
\n"; } ?>
Zulässige Buchstaben

Wenn das Feld ausgefüllt wird, werden nur Worte gesucht, die sich aus den Buchstaben der Eingabe bilden lassen.

Wird hier also zum Beipiel "Brocken" eingegeben, lässt sich daraus BOCK bilden, nicht aber ECKE oder BRATEN).

">
= 0; $i--) { if (preg_match('/^[A-ZÖÄÜa-zöäüß]$/u', $_REQUEST['preset' .$i])){ $query = '['.mb_strtoupper($_REQUEST['preset' .$i], 'UTF-8').']' . $query; }else{ $subquery = ''; for ($j = 0; $j < $height; $j++) { if (isset($values[$i][$j])) $subquery .= $values[$i][$j]; } if (empty($subquery)) { $query = '([A-ZÖÄÜß()&,0-9. -])' . $query; }else{ $query = '([^' . $subquery . ' \n\r.])' . $query; } } if ($width_mode == 1 && $i >= $width_min) { // character can be optional $query = '(' . $query . ')?'; } } $query = '/^' . $query . '$/u'; // echo $query; $words = file($dictfile); $match = preg_grep($query, $words); function is_built_from($word) { $filter = mb_strtoupper($_REQUEST['buildfrom'], 'UTF-8'); if (empty($filter)) { return true; } $wordarray = preg_split('//', trim($word), -1, PREG_SPLIT_NO_EMPTY); foreach($wordarray as $char) { if (substr_count($filter, $char) < substr_count($word, $char)) { return false; } } return true; } $match = array_filter($match, 'is_built_from'); echo '

' . count($match) . ' Treffer

'; echo '
'; foreach($match as $word) { echo ' '.$word.'
'; } echo '
'; } // isset($_REQUEST['go']) ?>

Fragen / Anregungen / Kontakt / neues Wörterbuch: hier abgeben

© Der Quelltext dieses Programms (GitHub) steht unter der GNU GPL zur Verfügung. Letzte Änderung: .