Signatur
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
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);
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);
// 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.