Signatur
Beschreibung
pspell_add_to_session() ergänzt die temporäre Wortliste der aktuellen PSpell-Sitzung um ein neues Wort. Das Wort wird dabei nur für die Dauer der Sitzung als korrekt anerkannt und beeinflusst die Rechtschreibprüfung unmittelbar. Im Gegensatz zu pspell_add_to_personal() wird das Wort nicht dauerhaft in der persönlichen Wortliste gespeichert.
Diese Funktion ist nützlich, wenn Wörter nur temporär akzeptiert werden sollen – etwa bei der Verarbeitung von Fachtexten oder Benutzereingaben, bei denen domänenspezifische Begriffe einmalig berücksichtigt werden müssen, ohne die persönliche Wortliste zu verändern.
Um Wörter dauerhaft zu speichern, muss stattdessen pspell_add_to_personal() in Kombination mit pspell_save_wordlist() verwendet werden. Die sitzungsbezogene Liste wird beim Beenden des Skripts automatisch verworfen.
Die PSpell-Erweiterung muss bei der PHP-Kompilierung aktiviert worden sein (--with-pspell), und das entsprechende Aspell-Wörterbuch für die gewünschte Sprache muss installiert sein.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dictionary Pflicht | PSpell\Dictionary | Eine PSpell-Wörterbuch-Instanz, die zuvor mit pspell_new(), pspell_new_config() oder pspell_new_personal() erzeugt wurde. |
|
| $word Pflicht | string | Das Wort, das der sitzungsbezogenen Wortliste hinzugefügt werden soll. Groß-/Kleinschreibung wird beachtet. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültiges Wörterbuch-Handle).Beispiele
Temporäres Hinzufügen eines Fachbegriffs zur Sitzungs-Wortliste
<?php
// Wörterbuch für Deutsch öffnen
$dictionary = pspell_new('de');
$wort = 'Refactoring';
// Ohne Hinzufügen: Rechtschreibfehler?
if (!pspell_check($dictionary, $wort)) {
echo "'{$wort}' ist laut Wörterbuch falsch geschrieben.\n";
}
// Wort für diese Sitzung akzeptieren
pspell_add_to_session($dictionary, $wort);
// Jetzt wird es als korrekt erkannt
if (pspell_check($dictionary, $wort)) {
echo "'{$wort}' wird jetzt in dieser Sitzung akzeptiert.\n";
}
?>
Vergleich: sitzungsbezogen vs. dauerhaft hinzufügen
<?php
// Persönliche Wortliste verwenden
$dictionary = pspell_new_personal('/tmp/meine_woerter.pws', 'de');
$fachbegriff = 'Microservice';
// Nur für diese Sitzung hinzufügen (nicht gespeichert)
pspell_add_to_session($dictionary, $fachbegriff);
echo pspell_check($dictionary, $fachbegriff) ? "Sitzung: korrekt\n" : "Sitzung: falsch\n";
// Um dauerhaft zu speichern, müsste man stattdessen verwenden:
// pspell_add_to_personal($dictionary, $fachbegriff);
// pspell_save_wordlist($dictionary);
?>
// Wichtig · Fallstricke
Hinweis zur PHP-Version: Ab PHP 8.1 erwartet die Funktion ein PSpell\Dictionary-Objekt anstelle eines Integer-Handles. In älteren PHP-Versionen (PHP 7 und früher) wurde ein int als Handle übergeben.
Wichtig: Wörter, die mit pspell_add_to_session() hinzugefügt werden, sind nicht persistent. Nach dem Skript-Ende gehen sie verloren. Für dauerhafte Einträge muss pspell_add_to_personal() zusammen mit pspell_save_wordlist() genutzt werden.
Die PSpell-Erweiterung gilt als veraltet und wird in modernen PHP-Projekten kaum noch eingesetzt. Alternativen wie die Enchant-Erweiterung (enchant_*) bieten eine flexiblere Rechtschreibprüfung mit Unterstützung verschiedener Backends.