Signatur
Beschreibung
pspell_config_data_dir() setzt den Pfad zum Verzeichnis, das die sprachspezifischen Datendateien für die pspell-Bibliothek enthält. Diese Funktion muss vor dem Erstellen einer pspell-Konfiguration mit pspell_new_config() aufgerufen werden.
Die Datendateien enthalten sprachabhängige Informationen wie Morphologie-Regeln und andere linguistische Daten, die Aspell/pspell für die Rechtschreibprüfung benötigt. Wenn die Datendateien nicht im Standardpfad installiert sind, ermöglicht diese Funktion, einen benutzerdefinierten Pfad anzugeben.
Typischerweise wird pspell_config_data_dir() zusammen mit pspell_config_dict_dir() eingesetzt, wenn Wörterbuch- und Datendateien in nicht standardmäßigen Verzeichnissen liegen – zum Beispiel in einer portablen Anwendung oder in einer Shared-Hosting-Umgebung ohne root-Zugriff.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $config Pflicht | PSpell\Config | Eine pspell-Konfigurationsinstanz, die zuvor mit pspell_config_create() erstellt wurde. |
|
| $directory Pflicht | string | Der absolute Pfad zum Verzeichnis, das die sprachspezifischen Datendateien enthält. Das Verzeichnis muss für den Webserver-Prozess lesbar sein. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler.Beispiele
Benutzerdefiniertes Datenverzeichnis für Rechtschreibprüfung setzen
<?php
// Konfigurationsobjekt erstellen
$config = pspell_config_create('de');
// Pfad zu den Sprachdatendateien setzen
pspell_config_data_dir($config, '/usr/local/share/aspell');
// Optionales: Wörterbuchverzeichnis ebenfalls anpassen
pspell_config_dict_dir($config, '/usr/local/share/aspell');
// pspell-Instanz mit der Konfiguration erstellen
$pspell = pspell_new_config($config);
if ($pspell) {
$wort = 'Rechtschreibung';
if (pspell_check($pspell, $wort)) {
echo "'$wort' ist korrekt geschrieben.";
} else {
echo "'$wort' enthält einen Rechtschreibfehler.";
}
} else {
echo 'pspell-Instanz konnte nicht erstellt werden.';
}
Portable Anwendung mit eigenem Aspell-Pfad
<?php
// Basispfad der Anwendung
$basePath = '/var/www/myapp/aspell-data';
$config = pspell_config_create('en');
// Datendateien und Wörterbücher aus dem App-eigenen Verzeichnis laden
pspell_config_data_dir($config, $basePath . '/data');
pspell_config_dict_dir($config, $basePath . '/dict');
// Modus auf schnelle Überprüfung setzen
pspell_config_mode($config, PSPELL_FAST);
$pspell = pspell_new_config($config);
if ($pspell) {
$woerter = ['hello', 'wrold', 'php'];
foreach ($woerter as $wort) {
$status = pspell_check($pspell, $wort) ? 'korrekt' : 'fehlerhaft';
echo "'$wort': $status\n";
}
}
// Wichtig · Fallstricke
Wichtig: pspell_config_data_dir() muss vor dem Aufruf von pspell_new_config() aufgerufen werden, da die Konfiguration danach nicht mehr geändert werden kann.
Ab PHP 8.1.0 akzeptiert die Funktion anstelle eines Integer-Handles eine PSpell\Config-Instanz. Älterer Code, der einen int-Typ verwendet, muss entsprechend angepasst werden.
Die pspell-Erweiterung ist in PHP ab Version 8.2.0 als veraltet markiert und könnte in zukünftigen Versionen entfernt werden. Für neue Projekte sollten Alternativen wie die enchant-Erweiterung in Betracht gezogen werden.