Start · Sprachen · PHP · Referenz · pspell_add_to_session

pspell_add_to_session

Funktion

Fügt ein Wort zur sitzungsbezogenen Wortliste eines PSpell-Wörterbuchs hinzu, ohne die persönliche Wortliste dauerhaft zu speichern.

seit PHP 5.0.0 Kategorie: string

Signatur

pspell_add_to_session(PSpell\Dictionary $dictionary, string $word): bool

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

Typ
bool
Beschreibung
Gibt 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";
}
?>
'Refactoring' ist laut Wörterbuch falsch geschrieben. 'Refactoring' wird jetzt in dieser Sitzung akzeptiert.

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);
?>
Sitzung: korrekt

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