Start · Sprachen · PHP · Referenz · enchant_broker_request_dict

enchant_broker_request_dict

Funktion

Erzeugt ein neues Wörterbuch-Objekt anhand eines Sprach-Tags (z. B. <code>"de_DE"</code>) über einen Enchant-Broker.

seit PHP 5.3.0 Kategorie: string

Signatur

enchant_broker_request_dict(EnchantBroker $broker, string $tag): EnchantDictionary|false

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

Typ
EnchantDictionary|false
Beschreibung
Gibt bei Erfolg ein 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);
'Rechtschreibung' ist korrekt geschrieben.

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);
colour: FALSCH color: OK recieve: FALSCH

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