Start · Sprachen · PHP · Referenz · pspell_config_data_dir

pspell_config_data_dir

Funktion

Legt das Verzeichnis fest, in dem pspell nach sprachspezifischen Datendateien sucht.

seit PHP 5.0.0 Kategorie: string

Signatur

pspell_config_data_dir(PSpell\Config $config, string $directory): bool

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

Typ
bool
Beschreibung
Gibt 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.';
}
'Rechtschreibung' ist korrekt geschrieben.

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";
    }
}
'hello': korrekt 'wrold': fehlerhaft 'php': korrekt

// 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.