Start · Sprachen · PHP · Referenz · enchant_broker_describe

enchant_broker_describe

Funktion

Gibt eine Liste aller verfügbaren Enchant-Rechtschreibprüfungs-Anbieter (Provider) zurück, die dem Broker bekannt sind.

seit PHP 8.0.0 Kategorie: string

Signatur

enchant_broker_describe(EnchantBroker $broker): array

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

Typ
array
Beschreibung
Gibt ein indiziertes Array zurück. Jedes Element ist ein assoziatives Array mit den Schlüsseln 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;
    }
}
Name: Hunspell Beschreibung: Hunspell Provider Bibliothek: /usr/lib/enchant/libenchant_hunspell.so --- Name: Aspell Beschreibung: Aspell Provider Bibliothek: /usr/lib/enchant/libenchant_aspell.so ---

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;
}
Hunspell ist verfügbar – Wörterbuch kann geladen werden.

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