Signatur
Beschreibung
enchant_broker_list_dicts() fragt den Enchant-Broker nach allen installierten und zugänglichen Wörterbüchern ab und liefert diese als Array von assoziativen Arrays zurück. Jedes Element enthält Metadaten zum jeweiligen Wörterbuch, darunter den Sprachcode, den Anbieter-Namen, eine Beschreibung und die Dateiposition des Wörterbuchs.
Die Funktion ist besonders nützlich, wenn man dem Benutzer eine Auswahl der auf dem System installierten Sprachen anbieten möchte oder prüfen will, ob ein bestimmtes Wörterbuch verfügbar ist, bevor man es mit enchant_broker_request_dict() öffnet.
Die zurückgegebenen Daten hängen von den auf dem Host-System installierten Enchant-Backends (z. B. Hunspell, Aspell, Myspell) ab und können daher je nach Umgebung variieren.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $broker Pflicht | EnchantBroker | Eine gültige Enchant-Broker-Ressource bzw. ein EnchantBroker-Objekt, das zuvor mit enchant_broker_init() erstellt wurde. |
Rückgabewert
lang_tag– Sprachcode des Wörterbuchs (z. B.de_DE)provider_name– Name des Backends (z. B.hunspell)provider_desc– Beschreibung des Anbietersprovider_file– Dateipfad des Wörterbuchs
Beispiele
Alle verfügbaren Wörterbücher ausgeben
<?php
$broker = enchant_broker_init();
$dicts = enchant_broker_list_dicts($broker);
if (empty($dicts)) {
echo "Keine Wörterbücher gefunden.\n";
} else {
foreach ($dicts as $dict) {
echo "Sprache: " . $dict['lang_tag'] . "\n";
echo "Anbieter: " . $dict['provider_name'] . "\n";
echo "Beschreibung: " . $dict['provider_desc'] . "\n";
echo "Datei: " . $dict['provider_file'] . "\n";
echo str_repeat('-', 40) . "\n";
}
}
enchant_broker_free($broker);
Prüfen, ob ein bestimmtes Wörterbuch vorhanden ist
<?php
$broker = enchant_broker_init();
$gesuchteSpache = 'fr_FR';
$dicts = enchant_broker_list_dicts($broker);
$gefunden = false;
foreach ($dicts as $dict) {
if ($dict['lang_tag'] === $gesuchteSpache) {
$gefunden = true;
break;
}
}
if ($gefunden) {
echo "Wörterbuch für '{$gesuchteSpache}' ist verfügbar.\n";
$woerterbuch = enchant_broker_request_dict($broker, $gesuchteSpache);
// Wörterbuch verwenden ...
enchant_broker_free_dict($woerterbuch);
} else {
echo "Wörterbuch für '{$gesuchteSpache}' ist NICHT verfügbar.\n";
}
enchant_broker_free($broker);
// Wichtig · Fallstricke
Ab PHP 8.0 wird statt einer Ressource ein EnchantBroker-Objekt verwendet. Code, der noch mit der alten Ressourcen-API arbeitet, sollte auf die Objekt-API migriert werden.
Die Verfügbarkeit von Wörterbüchern ist vollständig vom Host-System abhängig. In Docker-Containern oder minimalen Server-Umgebungen sind möglicherweise keine Wörterbücher installiert — in diesem Fall gibt die Funktion ein leeres Array zurück.
Alternativ kann enchant_broker_dict_exists() genutzt werden, um die Existenz eines einzelnen Wörterbuchs effizienter zu prüfen, ohne alle Wörterbücher auflisten zu müssen.