Start · Sprachen · PHP · Referenz · enchant_broker_dict_exists

enchant_broker_dict_exists

Funktion

Prüft, ob ein Wörterbuch für das angegebene Sprach-Tag im Enchant-Broker vorhanden ist.

seit PHP 5.3.0 Kategorie: string

Signatur

enchant_broker_dict_exists(EnchantBroker $broker, string $tag): bool

Beschreibung

enchant_broker_dict_exists() fragt den Enchant-Broker, ob für das angegebene Sprach-Tag (z. B. de_DE, en_US) ein Wörterbuch installiert und verfügbar ist. Die Funktion gibt true zurück, wenn mindestens ein Backend (z. B. Aspell, Hunspell, Myspell) das entsprechende Wörterbuch bereitstellen kann.

Diese Funktion ist besonders nützlich, bevor man mit enchant_broker_request_dict() ein Wörterbuch öffnet: Man kann so verhindern, dass eine Exception oder ein Fehler entsteht, wenn das gewünschte Wörterbuch nicht installiert ist.

Das $tag folgt dem IETF-BCP-47-Format oder der Unix-Locale-Schreibweise (z. B. de_DE, fr, en_GB). Groß-/Kleinschreibung und Trennzeichen können je nach Backend variieren.

Ab PHP 8.0 wird statt eines Ressourcen-Handles ein EnchantBroker-Objekt verwendet.

Parameter

Name Typ Default Beschreibung
$broker Pflicht EnchantBroker Ein Enchant-Broker-Objekt, das zuvor mit enchant_broker_init() erstellt wurde.
$tag Pflicht string Das Sprach-Tag des gewünschten Wörterbuchs, z. B. de_DE, en_US oder fr.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn ein Wörterbuch für das angegebene Sprach-Tag vorhanden ist, andernfalls false.

Beispiele

Prüfen, ob ein deutsches Wörterbuch verfügbar ist

<?php
$broker = enchant_broker_init();

$lang = 'de_DE';

if (enchant_broker_dict_exists($broker, $lang)) {
    echo "Wörterbuch '{$lang}' ist verfügbar.\n";
    $dict = enchant_broker_request_dict($broker, $lang);
    // Wörterbuch verwenden ...
    enchant_broker_free_dict($dict);
} else {
    echo "Wörterbuch '{$lang}' ist NICHT installiert.\n";
}

enchant_broker_free($broker);
Wörterbuch 'de_DE' ist verfügbar.

Mehrere Sprachen auf Verfügbarkeit prüfen

<?php
$broker = enchant_broker_init();

$sprachen = ['de_DE', 'en_US', 'fr_FR', 'zh_CN'];

foreach ($sprachen as $lang) {
    $status = enchant_broker_dict_exists($broker, $lang) ? 'vorhanden' : 'nicht vorhanden';
    echo "Wörterbuch '{$lang}': {$status}\n";
}

enchant_broker_free($broker);
Wörterbuch 'de_DE': vorhanden Wörterbuch 'en_US': vorhanden Wörterbuch 'fr_FR': vorhanden Wörterbuch 'zh_CN': nicht vorhanden

// Wichtig · Fallstricke

Verfügbarkeit hängt vom System ab: Das Ergebnis dieser Funktion ist systemabhängig. Auf einem Server ohne installierte Hunspell- oder Aspell-Wörterbücher wird false zurückgegeben, auch wenn das Sprach-Tag korrekt ist.

PHP 8.0-Änderung: Ab PHP 8.0 erwartet die Funktion ein EnchantBroker-Objekt statt einer Ressource. Code, der noch mit der alten Ressourcen-API geschrieben wurde, muss angepasst werden.

Empfehlung: Immer enchant_broker_dict_exists() aufrufen, bevor enchant_broker_request_dict() verwendet wird, um Laufzeitfehler zu vermeiden.