Signatur
Beschreibung
enchant_broker_describe() liefert eine Liste aller Rechtschreibprüfungs-Backends (sogenannter Provider), die die Enchant-Bibliothek auf dem aktuellen System gefunden hat. Typische Anbieter sind etwa Aspell, Hunspell, Ispell oder Hspell.
Die Funktion ist nützlich, um zur Laufzeit zu ermitteln, welche Rechtschreibprüfungs-Engines tatsächlich verfügbar sind, bevor man versucht, ein Wörterbuch zu laden. So können Anwendungen gezielt reagieren, wenn ein bestimmter Provider fehlt.
Jedes Element des zurückgegebenen Arrays ist ein assoziatives Array mit den Schlüsseln name (Name des Providers), desc (kurze Beschreibung) und file (Pfad zur Shared-Library des Providers).
Beachte, dass die Funktion vor PHP 8.0 eine Ressource als Parameter erwartete; seit PHP 8.0 wird ein EnchantBroker-Objekt verwendet.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $broker Pflicht | EnchantBroker | Ein gültiges EnchantBroker-Objekt, das zuvor mit enchant_broker_init() erstellt wurde. |
Rückgabewert
name (Name des Providers), desc (Beschreibung) und file (Pfad zur Provider-Bibliothek). Ist kein Provider verfügbar, wird ein leeres Array zurückgegeben.Beispiele
Alle verfügbaren Enchant-Provider ausgeben
<?php
$broker = enchant_broker_init();
$providers = enchant_broker_describe($broker);
if (empty($providers)) {
echo 'Keine Enchant-Provider gefunden.' . PHP_EOL;
} else {
foreach ($providers as $provider) {
echo 'Name: ' . $provider['name'] . PHP_EOL;
echo 'Beschreibung: ' . $provider['desc'] . PHP_EOL;
echo 'Bibliothek: ' . $provider['file'] . PHP_EOL;
echo '---' . PHP_EOL;
}
}
Prüfen ob ein bestimmter Provider vorhanden ist
<?php
$broker = enchant_broker_init();
$providers = enchant_broker_describe($broker);
$providerNames = array_column($providers, 'name');
if (in_array('Hunspell', $providerNames, true)) {
echo 'Hunspell ist verfügbar – Wörterbuch kann geladen werden.' . PHP_EOL;
} else {
echo 'Hunspell ist NICHT verfügbar.' . PHP_EOL;
}
// Wichtig · Fallstricke
Die tatsächlich zurückgegebenen Provider hängen vollständig von der Systemkonfiguration und den installierten Enchant-Plugins ab. Auf verschiedenen Servern können unterschiedliche Provider vorhanden sein. Nutze diese Funktion daher, um portablen Code zu schreiben, der dynamisch auf vorhandene Backends reagiert.
Vor PHP 8.0 wurde anstelle des EnchantBroker-Objekts eine Ressource (Resource) übergeben. Bei Migration von älterem Code ist dies zu beachten.