Signatur
Beschreibung
pspell_add_to_personal fügt ein einzelnes Wort zur persönlichen Wortliste hinzu, die mit dem übergebenen PSpell-Wörterbuch-Handle verknüpft ist. Dadurch wird das Wort für die aktuelle Sitzung als korrekt akzeptiert und taucht bei der Rechtschreibprüfung nicht mehr als Fehler auf.
Die persönliche Wortliste existiert zunächst nur im Arbeitsspeicher. Damit die Änderungen dauerhaft gespeichert werden, muss anschließend pspell_save_wordlist aufgerufen werden. Ohne diesen Schritt gehen neu hinzugefügte Wörter beim Beenden des Skripts verloren.
Typische Einsatzbereiche sind Web-Applikationen, in denen Benutzer eigene Fachbegriffe, Namen oder Akronyme ihrer persönlichen Wortliste hinzufügen können, damit diese bei zukünftigen Rechtschreibprüfungen nicht mehr als Fehler markiert werden.
Um eine persönliche Wortliste verwenden zu können, muss das PSpell-Dictionary mit pspell_new_personal oder pspell_new_config zusammen mit einer entsprechenden Konfiguration geöffnet werden, die eine persönliche Wortlistendatei spezifiziert.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dictionary Pflicht | PSpell\Dictionary | Ein gültiges PSpell-Wörterbuch-Handle, das mit pspell_new_personal oder pspell_new_config erstellt wurde. |
|
| $word Pflicht | string | Das Wort, das zur persönlichen Wortliste hinzugefügt werden soll. |
Rückgabewert
true bei Erfolg zurück, andernfalls false. Beachte, dass das Wort erst nach dem Aufruf von pspell_save_wordlist dauerhaft gespeichert ist.Beispiele
Wort zur persönlichen Wortliste hinzufügen und speichern
<?php
// Persönliches Wörterbuch öffnen (Wortlistendatei wird bei Bedarf angelegt)
$pspell = pspell_new_personal('/var/www/user_wordlist.pws', 'de');
if ($pspell === false) {
die('PSpell-Wörterbuch konnte nicht geöffnet werden.');
}
$word = 'Fachbegriff';
// Prüfen, ob das Wort bereits korrekt erkannt wird
if (!pspell_check($pspell, $word)) {
// Wort zur persönlichen Wortliste hinzufügen
pspell_add_to_personal($pspell, $word);
// Änderungen dauerhaft speichern
pspell_save_wordlist($pspell);
echo "'$word' wurde zur persönlichen Wortliste hinzugefügt.\n";
} else {
echo "'$word' ist bereits im Wörterbuch vorhanden.\n";
}
Mehrere benutzerdefinierte Wörter auf einmal hinzufügen
<?php
$config = pspell_config_create('de');
pspell_config_personal($config, '/var/www/custom_words.pws');
$pspell = pspell_new_config($config);
if ($pspell === false) {
die('PSpell-Konfiguration konnte nicht geladen werden.');
}
$customWords = ['Eigenname', 'Produktname', 'Technikbegriff'];
foreach ($customWords as $word) {
if (!pspell_check($pspell, $word)) {
pspell_add_to_personal($pspell, $word);
echo "Hinzugefügt: $word\n";
}
}
// Alle Änderungen auf einmal speichern
pspell_save_wordlist($pspell);
echo "Wortliste erfolgreich gespeichert.\n";
// Wichtig · Fallstricke
Persistenz: Wörter, die mit pspell_add_to_personal hinzugefügt werden, sind nur für die aktuelle Sitzung gültig, solange pspell_save_wordlist nicht aufgerufen wird. Bei lang laufenden Anwendungen empfiehlt es sich, das Speichern nach jedem Hinzufügen oder am Ende einer Benutzeraktion durchzuführen.
Ab PHP 8.1: Das erste Argument ist vom Typ PSpell\Dictionary (Objekt); in älteren PHP-Versionen wurde stattdessen ein int-Handle verwendet.
Eingabevalidierung: Benutzereingaben sollten vor dem Hinzufügen bereinigt werden, um unerwünschte oder schädliche Zeichenketten in der Wortlistendatei zu vermeiden. Erlauben Sie nur alphabetische Zeichenketten, die dem erwarteten Format entsprechen.