Signatur
Beschreibung
enchant_dict_describe liefert Metadaten zu einem zuvor geöffneten Enchant-Wörterbuch. Das zurückgegebene Array enthält Informationen wie den Provider-Namen, die Provider-Beschreibung, den Dateinamen der Provider-Bibliothek sowie die Sprachen-Tag (Locale) des Wörterbuchs.
Die Funktion ist nützlich, wenn man zur Laufzeit prüfen möchte, welches Backend (z. B. Aspell, Hunspell, Ispell) tatsächlich für ein bestimmtes Wörterbuch verwendet wird, oder um Debug-Ausgaben und Benutzerinformationen bereitzustellen.
Um ein Wörterbuch-Handle zu erhalten, muss zuvor ein Enchant-Broker mit enchant_broker_init() erzeugt und anschließend das Wörterbuch mit enchant_broker_request_dict() angefordert werden.
Ab PHP 8.0 wird statt einer Ressource ein EnchantDictionary-Objekt übergeben. Das Rückgabe-Array enthält die Schlüssel lang, provider_name, provider_desc und provider_file.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dictionary Pflicht | EnchantDictionary | Ein gültiges Enchant-Wörterbuch-Handle, das zuvor mit enchant_broker_request_dict() oder einer ähnlichen Funktion erzeugt wurde. |
Rückgabewert
lang– Sprach-Tag / Locale des Wörterbuchs (z. B.de_DE)provider_name– Name des verwendeten Providers (z. B.aspell)provider_desc– Beschreibung des Providersprovider_file– Pfad zur Provider-Bibliotheksdatei
false zurückgegeben.Beispiele
Wörterbuch-Informationen ausgeben
<?php
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker, 'de_DE')) {
$dict = enchant_broker_request_dict($broker, 'de_DE');
$info = enchant_dict_describe($dict);
echo 'Sprache: ' . $info['lang'] . PHP_EOL;
echo 'Provider: ' . $info['provider_name'] . PHP_EOL;
echo 'Provider-Beschr.: ' . $info['provider_desc'] . PHP_EOL;
echo 'Provider-Datei: ' . $info['provider_file'] . PHP_EOL;
enchant_broker_free_dict($dict);
} else {
echo 'Wörterbuch de_DE nicht verfügbar.' . PHP_EOL;
}
enchant_broker_free($broker);
Mehrere Wörterbücher vergleichen
<?php
$broker = enchant_broker_init();
$locales = ['de_DE', 'en_US', 'fr_FR'];
foreach ($locales as $locale) {
if (enchant_broker_dict_exists($broker, $locale)) {
$dict = enchant_broker_request_dict($broker, $locale);
$info = enchant_dict_describe($dict);
printf(
"%-8s wird bereitgestellt von: %s\n",
$info['lang'],
$info['provider_name']
);
enchant_broker_free_dict($dict);
} else {
echo "$locale nicht verfügbar.\n";
}
}
enchant_broker_free($broker);
// Wichtig · Fallstricke
Die Enchant-Extension muss beim PHP-Build aktiviert worden sein (seit PHP 8.0 ist sie standardmäßig im Core enthalten). Ohne installierte Wörterbuch-Backends (z. B. Hunspell-Pakete) liefert enchant_broker_dict_exists() false und enchant_broker_request_dict() schlägt fehl.
Vor PHP 8.0 wurden Enchant-Handles als Ressourcen übergeben; ab PHP 8.0 handelt es sich um EnchantBroker- und EnchantDictionary-Objekte. Code, der Ressourcen-Checks wie is_resource() verwendet, muss entsprechend angepasst werden.