Start · Sprachen · PHP · Referenz · enchant_dict_check

enchant_dict_check

Funktion

Prüft, ob ein Wort in einem Enchant-Wörterbuch als korrekt geschrieben gilt.

seit PHP 5.3.0 Kategorie: string

Signatur

enchant_dict_check(EnchantDictionary $dictionary, string $word): bool

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

Typ
bool
Beschreibung
Gibt 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);
'Haus' ist korrekt geschrieben. 'Hausss' ist NICHT korrekt geschrieben. 'Schreibtisch' ist korrekt geschrieben. 'Schreibtischh' ist NICHT korrekt geschrieben.

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);
'recieve' ist falsch geschrieben. Meintest du: receive, relieve, ...?

// 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.