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