Start · Sprachen · PHP · Referenz · pspell_store_replacement

pspell_store_replacement

Funktion

Speichert ein Ersetzungspaar (falsch geschriebenes Wort → korrekte Schreibweise) in einem PSpell-Wörterbuch-Link.

seit PHP 4.0.2 Kategorie: string

Signatur

pspell_store_replacement(PSpell\Dictionary $dictionary, string $misspelled, string $correct): bool

Beschreibung

pspell_store_replacement() trägt ein benutzerdefiniertes Ersetzungspaar in das PSpell-Wörterbuch ein. Dabei wird festgehalten, dass das Wort $misspelled durch $correct ersetzt werden soll. Diese Zuordnung wird beim nächsten Aufruf von pspell_suggest() berücksichtigt, sodass die Korrekturvorschläge für den Endnutzer optimiert werden.

Das Ersetzungspaar wird nicht dauerhaft gespeichert, solange nicht anschließend pspell_save_wordlist() aufgerufen wird. Diese Funktion ist daher besonders nützlich, wenn man Benutzerfeedback zu Rechtschreibkorrekturen sammelt und in die eigene Wortliste einfließen lassen möchte.

Damit Ersetzungen persistent gespeichert werden können, muss der Wörterbuch-Link mit pspell_new_personal() oder pspell_new_config() in Verbindung mit einem persönlichen Wortlisten-Pfad erstellt worden sein.

Parameter

Name Typ Default Beschreibung
$dictionary Pflicht PSpell\Dictionary Ein PSpell-Wörterbuch-Handle, das zuvor mit pspell_new(), pspell_new_personal() oder pspell_new_config() erstellt wurde. Ab PHP 8.1 ist dies ein PSpell\Dictionary-Objekt.
$misspelled Pflicht string Das falsch geschriebene Wort, das als Schlüssel des Ersetzungspaares dient.
$correct Pflicht string Die korrekte Schreibweise des Wortes, die als Ersetzungsvorschlag gespeichert wird.

Rückgabewert

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

Beispiele

Ersetzungspaar speichern und persistieren

<?php
// Persönliches Wörterbuch anlegen
$pspell_config = pspell_config_create('de');
pspell_config_personal($pspell_config, '/tmp/meine_woerter.pws');
$dictionary = pspell_new_config($pspell_config);

// Häufig falsch geschriebenes Wort mit Korrektur hinterlegen
if (pspell_store_replacement($dictionary, 'Rechtscreibung', 'Rechtschreibung')) {
    // Änderungen dauerhaft in der persönlichen Wortliste speichern
    pspell_save_wordlist($dictionary);
    echo 'Ersetzungspaar erfolgreich gespeichert.';
} else {
    echo 'Fehler beim Speichern des Ersetzungspaares.';
}
?>
Ersetzungspaar erfolgreich gespeichert.

Verbesserung von Korrekturvorschlägen durch gespeicherte Ersetzungen

<?php
$pspell_config = pspell_config_create('en');
pspell_config_personal($pspell_config, '/tmp/custom_words.pws');
$dictionary = pspell_new_config($pspell_config);

// Benutzer hat "teh" mit "the" korrigiert — dieses Feedback speichern
pspell_store_replacement($dictionary, 'teh', 'the');
pspell_save_wordlist($dictionary);

// Beim nächsten Aufruf erscheint "the" bevorzugt in den Vorschlägen
$suggestions = pspell_suggest($dictionary, 'teh');
echo 'Vorschläge: ' . implode(', ', $suggestions);
?>
Vorschläge: the, ten, tea, ...

// Wichtig · Fallstricke

Achtung: Ohne anschließenden Aufruf von pspell_save_wordlist() sind die gespeicherten Ersetzungspaare nur für die Dauer der aktuellen PHP-Sitzung gültig und gehen danach verloren.

Die PSpell-Erweiterung ist ab PHP 8.0 als veraltet (deprecated) markiert und wurde mit PHP 8.1 in die PECL-Erweiterung ausgelagert. Für neue Projekte sollten moderne Alternativen wie Hunspell über FFI oder externe Dienste in Betracht gezogen werden.

Damit das Ersetzungspaar tatsächlich Wirkung zeigt, muss der Wörterbuch-Link mit einer persönlichen Wortliste konfiguriert sein (pspell_config_personal()). Andernfalls kann das Ersetzungspaar zwar gespeichert, aber nicht dauerhaft persistiert werden.