Signatur
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
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);
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);
// 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).