Signatur
Beschreibung
enchant_broker_set_dict_path legt das Verzeichnis fest, das ein bestimmtes Enchant-Backend (z. B. Myspell oder Ispell) beim Laden von Wörterbüchern durchsucht. Damit kann die Anwendung eigene oder projektspezifische Wörterbuchpfade außerhalb der Systemstandards verwenden.
Der Parameter dict_type bestimmt, welches Backend konfiguriert werden soll. Gültige Werte sind die Konstanten ENCHANT_MYSPELL und ENCHANT_ISPELL. Der Pfad muss auf ein existierendes, lesbares Verzeichnis verweisen, das die Wörterbuchdateien des jeweiligen Backends enthält.
Diese Funktion ist besonders nützlich, wenn Wörterbücher nicht am systemweiten Standardort installiert sind – etwa in containerisierten Umgebungen, bei Shared-Hosting-Setups oder wenn benutzerdefinierte Fachvokabular-Wörterbücher eingebunden werden sollen.
Hinweis: Ab PHP 8.0 wird anstelle einer Ressource ein EnchantBroker-Objekt verwendet. Die Funktion gibt true bei Erfolg zurück, andernfalls false.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $broker Pflicht | EnchantBroker | Eine EnchantBroker-Instanz, die zuvor mit enchant_broker_init() erstellt wurde. |
|
| $dict_type Pflicht | int | Der Backend-Typ, für den der Pfad gesetzt werden soll. Gültige Werte sind ENCHANT_MYSPELL und ENCHANT_ISPELL. |
|
| $value Pflicht | string | Der vollständige Dateisystempfad zum Verzeichnis, das die Wörterbuchdateien des gewählten Backends enthält. |
Rückgabewert
true zurück, wenn der Pfad erfolgreich gesetzt wurde, andernfalls false.Beispiele
Eigenen Myspell-Wörterbuchpfad setzen
<?php
// Broker initialisieren
$broker = enchant_broker_init();
// Benutzerdefiniertes Myspell-Verzeichnis setzen
$dictPath = '/var/www/app/dicts/myspell';
if (enchant_broker_set_dict_path($broker, ENCHANT_MYSPELL, $dictPath)) {
echo "Wörterbuchpfad erfolgreich gesetzt.\n";
// Wörterbuch für Deutsch laden
if (enchant_broker_dict_exists($broker, 'de_DE')) {
$dict = enchant_broker_request_dict($broker, 'de_DE');
echo "Wörterbuch 'de_DE' geladen.\n";
enchant_broker_free_dict($dict);
} else {
echo "Kein Wörterbuch für 'de_DE' gefunden.\n";
}
} else {
echo "Fehler beim Setzen des Wörterbuchpfads.\n";
}
enchant_broker_free($broker);
Ispell-Pfad für fachspezifisches Vokabular konfigurieren
<?php
$broker = enchant_broker_init();
// Pfad für Ispell-Backend mit medizinischen Fachbegriffen
$customPath = '/opt/dicts/medical/ispell';
$result = enchant_broker_set_dict_path($broker, ENCHANT_ISPELL, $customPath);
if ($result) {
echo "Ispell-Pfad auf '{$customPath}' gesetzt.\n";
$availableDicts = enchant_broker_list_dicts($broker);
echo "Verfügbare Wörterbücher:\n";
foreach ($availableDicts as $dict) {
echo ' - ' . $dict['lang_tag'] . "\n";
}
} else {
echo "Fehler: Pfad konnte nicht gesetzt werden.\n";
}
enchant_broker_free($broker);
// Wichtig · Fallstricke
Versionswechsel: Vor PHP 8.0 wurde der $broker-Parameter als Ressource (resource) übergeben. Ab PHP 8.0 wird stattdessen ein EnchantBroker-Objekt erwartet.
Verfügbarkeit: Diese Funktion ist nur für die Backends ENCHANT_MYSPELL und ENCHANT_ISPELL definiert. Andere Backends (z. B. Hunspell) unterstützen diese Pfadkonfiguration möglicherweise nicht über diese Funktion.
Sicherheitshinweis: Wenn der Pfad aus Benutzereingaben stammt, muss er sorgfältig validiert und bereinigt werden, um Path-Traversal-Angriffe zu verhindern. Verwenden Sie realpath() und prüfen Sie, ob der Pfad innerhalb eines erlaubten Basisverzeichnisses liegt.