Start · Sprachen · PHP · Referenz · pspell_config_personal

pspell_config_personal

Funktion

Legt die Datei fest, die die persönliche Wortliste für eine PSpell-Konfiguration enthält.

seit PHP 4.0.2 Kategorie: string

Signatur

pspell_config_personal(PSpell\Config $config, string $filename): bool

Beschreibung

pspell_config_personal definiert für eine PSpell-Konfiguration die Datei, in der benutzerspezifische Wörter gespeichert werden. Diese persönliche Wortliste ergänzt das Standard-Wörterbuch und ermöglicht es, eigene Begriffe (z. B. Fachbegriffe, Namen oder projektspezifische Ausdrücke) als korrekt zu hinterlegen.

Die Funktion muss vor dem Aufruf von pspell_new_config aufgerufen werden, da die Konfiguration erst bei der Wörterbuch-Erstellung wirksam wird. Die angegebene Datei muss vom Webserver beschreibbar sein, wenn neue Wörter mit pspell_add_to_personal und anschließend pspell_save_wordlist dauerhaft gespeichert werden sollen.

Existiert die angegebene Datei noch nicht, wird sie beim ersten Speichern automatisch angelegt. Ist sie bereits vorhanden, wird sie beim Laden des Wörterbuchs eingelesen und um neue Einträge erweitert. Dies eignet sich besonders für Anwendungen mit benutzerindividuellen Rechtschreibprüfungen, etwa in Content-Management-Systemen oder webbasierten Texteditoren.

Parameter

Name Typ Default Beschreibung
$config Pflicht PSpell\Config Eine PSpell-Konfigurationsinstanz, die zuvor mit pspell_config_create erstellt wurde.
$filename Pflicht string Absoluter oder relativer Pfad zur Datei, die die persönliche Wortliste enthält bzw. beim Speichern angelegt werden soll. Der Webserver-Prozess benötigt Lese- und Schreibzugriff auf diese Datei.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false bei einem Fehler (z. B. wenn die Konfiguration ungültig ist).

Beispiele

Persönliche Wortliste konfigurieren und Wörterbuch öffnen

<?php
// Konfiguration erstellen (Deutsch)
$config = pspell_config_create('de');

// Persönliche Wortliste festlegen
pspell_config_personal($config, '/var/data/pspell/user_wordlist.pws');

// Wörterbuch auf Basis der Konfiguration öffnen
$speller = pspell_new_config($config);

// Prüfen, ob ein Wort korrekt ist
$word = 'Fachbegriff';
if (!pspell_check($speller, $word)) {
    echo "'$word' wurde nicht erkannt.\n";
} else {
    echo "'$word' ist korrekt.\n";
}
'Fachbegriff' wurde nicht erkannt.

Wort zur persönlichen Liste hinzufügen und dauerhaft speichern

<?php
$config = pspell_config_create('de');

// Persönliche Wortliste (muss vom Webserver beschreibbar sein)
pspell_config_personal($config, '/var/data/pspell/user_wordlist.pws');

$speller = pspell_new_config($config);

$customWord = 'Fachbegriff';

if (!pspell_check($speller, $customWord)) {
    // Wort zur persönlichen Liste hinzufügen
    pspell_add_to_personal($speller, $customWord);
    // Dauerhaft in die Datei schreiben
    pspell_save_wordlist($speller);
    echo "'$customWord' wurde zur persönlichen Wortliste hinzugefügt.\n";
}

// Beim nächsten Aufruf wird das Wort als korrekt erkannt
if (pspell_check($speller, $customWord)) {
    echo "'$customWord' ist jetzt in der persönlichen Wortliste.\n";
}
'Fachbegriff' wurde zur persönlichen Wortliste hinzugefügt. 'Fachbegriff' ist jetzt in der persönlichen Wortliste.

// Wichtig · Fallstricke

Reihenfolge beachten: pspell_config_personal muss zwingend vor pspell_new_config aufgerufen werden, da Konfigurationsänderungen danach keine Wirkung mehr haben.

Sicherheit: Der Pfad zur persönlichen Wortliste sollte niemals direkt aus Benutzereingaben übernommen werden, um Path-Traversal-Angriffe zu verhindern. Verwende absolute, fest kodierte Pfade oder validiere Eingaben sorgfältig.

Dateiberechtigungen: Die Datei muss für den Webserver-Prozess les- und schreibbar sein. Setze die Berechtigungen so restriktiv wie möglich (z. B. 0600 für den Webserver-Nutzer).

PHP 8.1+: Ab PHP 8.1 wird anstelle einer Ressource ein PSpell\Config-Objekt verwendet. Die PSpell-Extension ist optional und muss explizit kompiliert bzw. installiert werden. Die gesamte PSpell-Extension gilt als veraltet und könnte in zukünftigen PHP-Versionen entfernt werden.