Signatur
Beschreibung
enchant_broker_request_dict fordert vom Enchant-Broker ein Wörterbuch für eine bestimmte Sprache an. Das Sprach-Tag folgt dem POSIX-Format (z. B. "de", "de_DE", "en_US"). Das zurückgegebene EnchantDictionary-Objekt kann anschließend zur Rechtschreibprüfung einzelner Wörter oder ganzer Texte genutzt werden.
Intern durchsucht der Broker alle registrierten Rechtschreib-Provider (Aspell, Hunspell, Ispell usw.) nach einem passenden Wörterbuch. Welche Provider verfügbar sind, hängt von der Installation ab. Mit enchant_broker_list_dicts kann man sich die verfügbaren Wörterbücher anzeigen lassen.
Wird kein passendes Wörterbuch gefunden, gibt die Funktion false zurück. Den genauen Fehlergrund kann man anschließend mit enchant_broker_get_error abfragen. Vor dem Einsatz der Funktion muss mit enchant_broker_init ein Broker erstellt worden sein.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $broker Pflicht | EnchantBroker | Ein gültiger Enchant-Broker, der zuvor mit enchant_broker_init() erstellt wurde. |
|
| $tag Pflicht | string | Das Sprach-Tag im POSIX-Format, z. B. "de", "de_DE", "en_US" oder "fr". |
Rückgabewert
EnchantDictionary-Objekt zurück, mit dem Rechtschreibprüfungen durchgeführt werden können. Im Fehlerfall (kein passendes Wörterbuch gefunden) wird false zurückgegeben.Beispiele
Deutsches Wörterbuch anfordern und Wort prüfen
<?php
$broker = enchant_broker_init();
$dict = enchant_broker_request_dict($broker, 'de_DE');
if ($dict === false) {
echo 'Wörterbuch konnte nicht geladen werden: '
. enchant_broker_get_error($broker);
} else {
$wort = 'Rechtschreibung';
if (enchant_dict_check($dict, $wort)) {
echo "'$wort' ist korrekt geschrieben.";
} else {
echo "'$wort' ist NICHT korrekt geschrieben.";
$vorschlaege = enchant_dict_suggest($dict, $wort);
echo ' Vorschläge: ' . implode(', ', $vorschlaege);
}
}
enchant_broker_free($broker);
Verfügbarkeit eines Wörterbuchs prüfen bevor es geladen wird
<?php
$broker = enchant_broker_init();
$tag = 'en_US';
if (enchant_broker_dict_exists($broker, $tag)) {
$dict = enchant_broker_request_dict($broker, $tag);
$woerter = ['colour', 'color', 'recieve'];
foreach ($woerter as $w) {
$korrekt = enchant_dict_check($dict, $w) ? 'OK' : 'FALSCH';
echo "$w: $korrekt\n";
}
} else {
echo "Kein Wörterbuch für '$tag' verfügbar.";
}
enchant_broker_free($broker);
// Wichtig · Fallstricke
Ressourcenverwaltung: Ab PHP 8.0 arbeitet Enchant mit Objekten (EnchantBroker, EnchantDictionary) statt mit Ressourcen. In PHP 5/7 wurden Ressource-Handles zurückgegeben. Entsprechend entfällt in PHP 8 die Funktion enchant_broker_free_dict — das Wörterbuch wird durch den Garbage Collector freigegeben.
Stellt sicher, dass die benötigten Enchant-Provider und Wörterbücher auf dem System installiert sind (z. B. hunspell-de-de unter Debian/Ubuntu), da andernfalls false zurückgegeben wird.