Start · Sprachen · PHP · Referenz · enchant_broker_request_pwl_dict

enchant_broker_request_pwl_dict

Funktion

Erzeugt ein Wörterbuch aus einer persönlichen Wortliste (PWL-Datei) und gibt ein <code>EnchantDictionary</code>-Objekt zurück.

seit PHP 5.3.0 Kategorie: string

Signatur

enchant_broker_request_pwl_dict(EnchantBroker $broker, string $filename): EnchantDictionary|false

Beschreibung

enchant_broker_request_pwl_dict lädt eine sogenannte Personal Word List (PWL) – eine einfache Textdatei, in der jede Zeile ein Wort enthält – und gibt ein EnchantDictionary-Objekt zurück, das diese Liste als Wörterbuch repräsentiert. Mit diesem Wörterbuch können Wörter auf ihre Anwesenheit in der Datei geprüft werden.

Diese Funktion ist besonders nützlich, wenn eine Anwendung ein benutzerdefiniertes oder projektspezifisches Vokabular (z. B. Fachbegriffe, Produktnamen, Eigennamen) zur Rechtschreibprüfung bereitstellen möchte, das nicht Teil der systemweiten Wörterbücher ist.

Die angegebene Datei muss lesbar und im einfachen Textformat (eine Wortform pro Zeile, UTF-8 empfohlen) vorliegen. Existiert die Datei noch nicht, wird sie von Enchant automatisch angelegt, sofern das Verzeichnis beschreibbar ist.

Das zurückgegebene EnchantDictionary-Objekt kann anschließend mit Funktionen wie enchant_dict_check, enchant_dict_suggest oder enchant_dict_add verwendet werden, um Wörter zu prüfen oder der Liste hinzuzufügen.

Parameter

Name Typ Default Beschreibung
$broker Pflicht EnchantBroker Ein gültiger Enchant-Broker, der zuvor mit enchant_broker_init() erstellt wurde.
$filename Pflicht string Absoluter oder relativer Pfad zur PWL-Datei. Die Datei enthält eine Wortform pro Zeile und muss lesbar sein. Falls sie nicht existiert, wird sie – sofern das Verzeichnis beschreibbar ist – neu angelegt.

Rückgabewert

Typ
EnchantDictionary|false
Beschreibung
Gibt bei Erfolg ein EnchantDictionary-Objekt zurück. Im Fehlerfall (z. B. Datei nicht lesbar, ungültiger Broker) wird false zurückgegeben.

Beispiele

Persönliches Wörterbuch aus PWL-Datei laden und Wörter prüfen

<?php
// Broker initialisieren
$broker = enchant_broker_init();

// Pfad zur PWL-Datei (eine Wortform pro Zeile)
$pwlFile = __DIR__ . '/mein_woerterbuch.pwl';

// Wörterbuch aus der PWL-Datei anfordern
$dict = enchant_broker_request_pwl_dict($broker, $pwlFile);

if ($dict === false) {
    echo 'Wörterbuch konnte nicht geladen werden.' . PHP_EOL;
} else {
    $woerter = ['Hallo', 'Fachbegriff', 'xyz123'];
    foreach ($woerter as $wort) {
        if (enchant_dict_check($dict, $wort)) {
            echo "'{$wort}' ist im Wörterbuch vorhanden." . PHP_EOL;
        } else {
            echo "'{$wort}' wurde NICHT gefunden." . PHP_EOL;
        }
    }
}

enchant_broker_free($broker);
'Hallo' ist im Wörterbuch vorhanden. 'Fachbegriff' wurde NICHT gefunden. 'xyz123' wurde NICHT gefunden.

Neues Wort zur PWL-Datei hinzufügen

<?php
$broker = enchant_broker_init();
$pwlFile = __DIR__ . '/fachbegriffe.pwl';

$dict = enchant_broker_request_pwl_dict($broker, $pwlFile);

if ($dict !== false) {
    // Neuen Fachbegriff dauerhaft zur PWL-Datei hinzufügen
    enchant_dict_add($dict, 'Mikrocontroller');
    enchant_dict_add($dict, 'PHP-Entwickler');

    if (enchant_dict_check($dict, 'Mikrocontroller')) {
        echo 'Mikrocontroller wurde erfolgreich hinzugefügt und erkannt.' . PHP_EOL;
    }
}

enchant_broker_free($broker);
Mikrocontroller wurde erfolgreich hinzugefügt und erkannt.

// Wichtig · Fallstricke

Dateirechte: Stellen Sie sicher, dass der PHP-Prozess Lese- und Schreibrechte auf die PWL-Datei sowie das zugehörige Verzeichnis hat, insbesondere wenn Wörter dynamisch hinzugefügt werden sollen.

Seit PHP 8.0: Die Funktion verwendet nun den Typ EnchantBroker als Objekt anstelle einer Ressource. Älterer Code mit resource-basierten Broker-Handles muss entsprechend angepasst werden.

Encoding: Die PWL-Datei sollte in UTF-8 kodiert sein, um eine korrekte Verarbeitung von Sonderzeichen und Umlauten sicherzustellen.