Signatur
Beschreibung
enchant_dict_check überprüft, ob das übergebene Wort im angegebenen Enchant-Wörterbuch als korrekt erkannt wird. Gibt die Funktion true zurück, ist das Wort bekannt und gilt als richtig geschrieben; false bedeutet, dass das Wort unbekannt oder falsch geschrieben ist.
Die Funktion ist besonders nützlich in Anwendungen, die eine Rechtschreibprüfung benötigen, etwa in CMS-Systemen, Formularen oder Texteditoren. Sie arbeitet auf Basis der Enchant-Bibliothek, die verschiedene Rechtschreib-Backends wie Hunspell oder Aspell unterstützt.
Vor dem Aufruf muss zunächst über enchant_broker_init ein Broker erzeugt und anschließend über enchant_broker_request_dict ein passendes Wörterbuch für die gewünschte Sprache geladen werden. Ab PHP 8.0 werden Objekte vom Typ EnchantDictionary statt Ressourcen verwendet.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dictionary Pflicht | EnchantDictionary | Ein Enchant-Wörterbuch-Objekt, das zuvor mit enchant_broker_request_dict oder enchant_broker_request_pwl_dict erstellt wurde. |
|
| $word Pflicht | string | Das zu prüfende Wort. Die Zeichenkodierung sollte zur Kodierung des geladenen Wörterbuchs passen (typischerweise UTF-8). |
Rückgabewert
true zurück, wenn das Wort als korrekt geschrieben gilt, andernfalls false.Beispiele
Einfache Rechtschreibprüfung eines deutschen Wortes
<?php
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker, 'de_DE')) {
$dict = enchant_broker_request_dict($broker, 'de_DE');
$worte = ['Haus', 'Hausss', 'Schreibtisch', 'Schreibtischh'];
foreach ($worte as $wort) {
if (enchant_dict_check($dict, $wort)) {
echo "'$wort' ist korrekt geschrieben.\n";
} else {
echo "'$wort' ist NICHT korrekt geschrieben.\n";
}
}
enchant_broker_free_dict($dict);
}
enchant_broker_free($broker);
Rechtschreibprüfung mit Korrekturvorschlägen bei Fehlern
<?php
$broker = enchant_broker_init();
$dict = enchant_broker_request_dict($broker, 'en_US');
$eingabe = 'recieve';
if (!enchant_dict_check($dict, $eingabe)) {
echo "'$eingabe' ist falsch geschrieben.\n";
$vorschlaege = enchant_dict_suggest($dict, $eingabe);
if (!empty($vorschlaege)) {
echo "Meintest du: " . implode(', ', $vorschlaege) . "?\n";
}
} else {
echo "'$eingabe' ist korrekt geschrieben.\n";
}
enchant_broker_free_dict($dict);
enchant_broker_free($broker);
// Wichtig · Fallstricke
Zeichenkodierung: Achte darauf, dass das übergebene Wort in der gleichen Kodierung vorliegt wie das Wörterbuch (meist UTF-8). Falsche Kodierungen können zu fehlerhaften Ergebnissen führen.
PHP 8.0: Ab PHP 8.0 wurde der Ressourcentyp für Wörterbücher durch das Objekt EnchantDictionary ersetzt. Älterer Code, der Ressourcen nutzt, muss ggf. angepasst werden.
Verfügbarkeit: Die Enchant-Erweiterung muss beim Kompilieren von PHP aktiviert sein oder als Modul geladen werden (extension=enchant). Außerdem müssen die entsprechenden Sprachpakete (z. B. Hunspell-Wörterbücher) auf dem System installiert sein.