Signatur
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
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.';
}
?>
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);
?>
// 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.