Start · Sprachen · PHP · Referenz · pspell_clear_session

pspell_clear_session

Funktion

Löscht alle Wörter, die der aktuellen Sitzung eines <code>PSpell</code>-Wörterbuchs hinzugefügt wurden, ohne sie dauerhaft zu speichern.

seit PHP 5.0.0 Kategorie: string

Signatur

pspell_clear_session(PSpell\Dictionary $dictionary): bool

Beschreibung

pspell_clear_session() entfernt alle Wörter, die während der aktuellen Sitzung mit pspell_add_to_session() temporär in das Wörterbuch aufgenommen wurden. Die Änderungen werden dabei nicht gespeichert, sodass das persönliche Wörterbuch auf der Festplatte unverändert bleibt.

Diese Funktion ist nützlich, wenn man eine Sitzung zurücksetzen möchte, ohne eine neue Wörterbuchverbindung öffnen zu müssen — zum Beispiel bei der Verarbeitung mehrerer unabhängiger Texte, bei denen temporäre Einträge aus dem vorherigen Durchlauf nicht übernommen werden sollen.

Im Gegensatz zu pspell_save_wordlist(), das die Sitzungswörter dauerhaft ins persönliche Wörterbuch schreibt, verwirft pspell_clear_session() alle temporären Einträge endgültig. Die Funktion arbeitet ausschließlich auf der In-Memory-Darstellung der Sitzung.

Hinweis: Die PSpell-Erweiterung erfordert die pspell-Bibliothek und aspell auf dem System. Ab PHP 8.1 wurden die PSpell-Ressourcen in Objekte der Klasse PSpell\Dictionary umgewandelt.

Parameter

Name Typ Default Beschreibung
$dictionary Pflicht PSpell\Dictionary Eine Wörterbuch-Instanz (vor PHP 8.1 eine Ressource), die zuvor mit pspell_new(), pspell_new_config() oder pspell_new_personal() erstellt wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false bei einem Fehler (z. B. ungültige Wörterbuch-Instanz).

Beispiele

Sitzung nach temporärem Hinzufügen von Wörtern zurücksetzen

<?php
// Wörterbuch für Deutsch öffnen
$dictionary = pspell_new('de');

// Temporär ein Wort zur Sitzung hinzufügen
pspell_add_to_session($dictionary, 'Testbegriff');

// Prüfen: Wort ist in der Sitzung vorhanden
if (pspell_check($dictionary, 'Testbegriff')) {
    echo "'Testbegriff' wird als korrekt erkannt." . PHP_EOL;
}

// Sitzung löschen — 'Testbegriff' wird nicht dauerhaft gespeichert
$result = pspell_clear_session($dictionary);

if ($result) {
    echo "Sitzung erfolgreich geleert." . PHP_EOL;
}

// Nach dem Löschen: Wort sollte nicht mehr als korrekt erkannt werden
if (!pspell_check($dictionary, 'Testbegriff')) {
    echo "'Testbegriff' ist nach der Sitzungsbereinigung nicht mehr bekannt." . PHP_EOL;
}
'Testbegriff' wird als korrekt erkannt. Sitzung erfolgreich geleert. 'Testbegriff' ist nach der Sitzungsbereinigung nicht mehr bekannt.

Mehrere Texte unabhängig voneinander prüfen

<?php
$dictionary = pspell_new('de');

$texte = [
    ['Beispielwort', 'Sonderbegriff1'],
    ['Fachbegriff', 'Sonderbegriff2'],
];

foreach ($texte as $index => $woerter) {
    // Sitzung vor jeder Runde zurücksetzen
    pspell_clear_session($dictionary);

    // Temporäre Wörter für diesen Durchlauf hinzufügen
    foreach ($woerter as $wort) {
        pspell_add_to_session($dictionary, $wort);
        echo "Runde $index: '$wort' zur Sitzung hinzugefügt." . PHP_EOL;
    }

    // Prüfung
    foreach ($woerter as $wort) {
        $status = pspell_check($dictionary, $wort) ? 'korrekt' : 'unbekannt';
        echo "Runde $index: '$wort' ist $status." . PHP_EOL;
    }
}
Runde 0: 'Beispielwort' zur Sitzung hinzugefügt. Runde 0: 'Sonderbegriff1' zur Sitzung hinzugefügt. Runde 0: 'Beispielwort' ist korrekt. Runde 0: 'Sonderbegriff1' ist korrekt. Runde 1: 'Fachbegriff' zur Sitzung hinzugefügt. Runde 1: 'Sonderbegriff2' zur Sitzung hinzugefügt. Runde 1: 'Fachbegriff' ist korrekt. Runde 1: 'Sonderbegriff2' ist korrekt.

// Wichtig · Fallstricke

Erweiterungsverfügbarkeit: Die pspell-Erweiterung ist nicht in jeder PHP-Installation standardmäßig aktiviert. Sie setzt die Installation der aspell- bzw. pspell-Bibliotheken auf dem Server voraus. Ohne diese Bibliotheken steht die Funktion nicht zur Verfügung.

Deprecation-Hinweis: Ab PHP 8.1 wurden PSpell-Ressourcen durch Objekte der Klasse PSpell\Dictionary ersetzt. Code, der noch Ressourcen erwartet, sollte entsprechend angepasst werden.

Dauerhaftes Speichern: Um temporäre Sitzungswörter dauerhaft ins persönliche Wörterbuch zu übernehmen, muss pspell_save_wordlist() vor dem Aufruf von pspell_clear_session() aufgerufen werden, da sonst alle Änderungen verloren gehen.