Start · Sprachen · PHP · Referenz · enchant_dict_quick_check

enchant_dict_quick_check

Funktion

Prüft die Rechtschreibung eines Worts und füllt optional ein Array mit Korrekturvorschlägen.

seit PHP 5.3.0 Kategorie: string

Signatur

enchant_dict_quick_check(EnchantDictionary $dictionary, string $word, array &$suggestions = null): bool

Beschreibung

enchant_dict_quick_check kombiniert die Rechtschreibprüfung und das Abrufen von Vorschlägen in einem einzigen Aufruf. Sie gibt true zurück, wenn das übergebene Wort korrekt geschrieben ist, andernfalls false. Gleichzeitig kann über den optionalen dritten Parameter ein Array mit Korrekturvorschlägen befüllt werden.

Die Funktion ist besonders praktisch, wenn man sowohl das Prüfergebnis als auch Vorschläge auf einmal benötigt, ohne separate Aufrufe von enchant_dict_check und enchant_dict_suggest durchführen zu müssen. Dies spart Overhead bei der Kommunikation mit der Enchant-Bibliothek.

Voraussetzung ist ein gültiges EnchantDictionary-Objekt, das zuvor mit enchant_broker_request_dict oder enchant_broker_request_pwl_dict erzeugt wurde. Das Wörterbuch muss für die gewünschte Sprache verfügbar sein.

Diese Funktion eignet sich hervorragend für den Einsatz in Formularprozessoren, Texteditoren oder Prüfwerkzeugen, die dem Benutzer sofort passende Korrekturen anzeigen sollen.

Parameter

Name Typ Default Beschreibung
$dictionary Pflicht EnchantDictionary Ein gültiges EnchantDictionary-Objekt, das mit enchant_broker_request_dict oder enchant_broker_request_pwl_dict erstellt wurde.
$word Pflicht string Das zu prüfende Wort als Zeichenkette.
$suggestions array null Wird als Referenz übergeben. Wenn das Wort falsch geschrieben ist, wird dieses Array mit möglichen Korrekturvorschlägen befüllt. Bei korrekter Schreibweise bleibt es in der Regel leer oder unverändert.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn das Wort korrekt geschrieben ist, andernfalls false. Im Fehlerfall (z. B. ungültiges Dictionary) wird ebenfalls false zurückgegeben.

Beispiele

Einfache Rechtschreibprüfung mit Vorschlägen

<?php
$broker = enchant_broker_init();

if (enchant_broker_dict_exists($broker, 'de_DE')) {
    $dict = enchant_broker_request_dict($broker, 'de_DE');

    $word = 'Rechtschrreibung';
    $suggestions = [];

    if (!enchant_dict_quick_check($dict, $word, $suggestions)) {
        echo "Das Wort '$word' ist falsch geschrieben.\n";
        echo "Vorschläge: " . implode(', ', $suggestions) . "\n";
    } else {
        echo "Das Wort '$word' ist korrekt geschrieben.\n";
    }

    enchant_broker_free_dict($dict);
}

enchant_broker_free($broker);
Das Wort 'Rechtschrreibung' ist falsch geschrieben. Vorschläge: Rechtschreibung, Rechtschreibungen

Mehrere Wörter eines Textes prüfen

<?php
$broker = enchant_broker_init();
$dict = enchant_broker_request_dict($broker, 'de_DE');

$text = 'Das ist ein einfachr Testt der Rechtshreibprüfung.';
$words = preg_split('/\s+/', strip_tags($text));

foreach ($words as $word) {
    $cleanWord = trim($word, '.,!?;:');
    if ($cleanWord === '') continue;

    $suggestions = [];
    if (!enchant_dict_quick_check($dict, $cleanWord, $suggestions)) {
        echo "Fehler: '$cleanWord'";
        if (!empty($suggestions)) {
            echo " → Vorschlag: " . $suggestions[0];
        }
        echo "\n";
    }
}

enchant_broker_free_dict($dict);
enchant_broker_free($broker);
Fehler: 'einfachr' → Vorschlag: einfacher Fehler: 'Testt' → Vorschlag: Test Fehler: 'Rechtshreibprüfung' → Vorschlag: Rechtschreibprüfung

// Wichtig · Fallstricke

Hinweis zur PHP-Version: Ab PHP 8.0 werden die Enchant-Funktionen über Objekte vom Typ EnchantBroker und EnchantDictionary verwendet. In älteren PHP-Versionen (vor 8.0) waren dies Ressourcen (resource). Die Signatur und das Verhalten sind ansonsten identisch.

Verfügbarkeit: Die Funktion setzt voraus, dass die Enchant-Erweiterung (ext/enchant) aktiviert ist und das gewünschte Wörterbuch auf dem System installiert ist (z. B. Hunspell-Wörterbücher unter Linux). Fehlt das Wörterbuch, schlägt enchant_broker_request_dict fehl.

Sicherheit: Benutzereingaben sollten vor der Übergabe an diese Funktion bereinigt werden, insbesondere wenn die Ergebnisse in HTML ausgegeben werden. Vorschläge niemals ungefiltert in HTML einbetten (htmlspecialchars verwenden).