Signatur
Beschreibung
enchant_dict_store_replacement teilt dem Enchant-Wörterbuch mit, dass $correct die bevorzugte Korrektur für das falsch geschriebene Wort $misspelled ist. Diese Information wird persistent gespeichert und beeinflusst künftige Vorschläge, die enchant_dict_suggest für dieses Wort liefert.
Die Funktion ist besonders nützlich, wenn automatische Vorschläge für bestimmte Wörter regelmäßig unpassend sind und eine feste, domänenspezifische Korrektur gewünscht wird – etwa in Fachvokabular, Eigennamen oder projektspezifischen Termini.
Beachte, dass die Persistenz der gespeicherten Ersetzung vom verwendeten Backend (z. B. Hunspell, Aspell, Myspell) und dessen Konfiguration abhängt. Nicht alle Backends unterstützen das Speichern von Ersetzungen gleichermaßen dauerhaft.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dictionary Pflicht | EnchantDictionary | Eine geöffnete Enchant-Wörterbuch-Ressource, die mit enchant_broker_request_dict oder enchant_broker_request_pwl_dict erstellt wurde. |
|
| $misspelled Pflicht | string | Das falsch geschriebene Wort, für das eine Korrektur hinterlegt werden soll. | |
| $correct Pflicht | string | Das korrekte Wort, das als bevorzugte Ersetzung für $misspelled gespeichert wird. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. wenn das Backend das Speichern von Ersetzungen nicht unterstützt).Beispiele
Benutzerdefinierte Korrektur für ein häufig falsch geschriebenes Wort speichern
<?php
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker, 'de_DE')) {
$dict = enchant_broker_request_dict($broker, 'de_DE');
// Korrektur speichern: "Tpyofehler" soll zu "Tippfehler" korrigiert werden
$result = enchant_dict_store_replacement($dict, 'Tpyofehler', 'Tippfehler');
if ($result) {
echo "Ersetzung erfolgreich gespeichert." . PHP_EOL;
} else {
echo "Speichern fehlgeschlagen." . PHP_EOL;
}
// Vorschläge für das falsch geschriebene Wort abrufen
$suggestions = enchant_dict_suggest($dict, 'Tpyofehler');
echo "Vorschläge: " . implode(', ', $suggestions) . PHP_EOL;
} else {
echo "Wörterbuch de_DE nicht verfügbar." . PHP_EOL;
}
Ersetzungen für fachspezifische Begriffe in einem persönlichen Wörterbuch
<?php
$broker = enchant_broker_init();
$pwlFile = '/tmp/mein_woerterbuch.pwl';
// Persönliches Wörterbuch öffnen
$dict = enchant_broker_request_pwl_dict($broker, $pwlFile);
// Domänenspezifische Korrekturen festlegen
$replacements = [
'PHP-Objct' => 'PHP-Objekt',
'Iteraion' => 'Iteration',
'Skalierng' => 'Skalierung',
];
foreach ($replacements as $wrong => $right) {
if (enchant_dict_store_replacement($dict, $wrong, $right)) {
echo "Ersetzung gespeichert: '$wrong' -> '$right'" . PHP_EOL;
}
}
// Wichtig · Fallstricke
Vor PHP 8.0 wurde anstelle eines EnchantDictionary-Objekts eine Ressource (resource) übergeben. Mit PHP 8.0 wurden diese Enchant-Ressourcen durch Objekte ersetzt.
Nicht alle Enchant-Backends speichern benutzerdefinierte Ersetzungen dauerhaft. Insbesondere bei Hunspell kann das Verhalten je nach Systemkonfiguration variieren. Es empfiehlt sich, den Rückgabewert zu prüfen, bevor auf die Speicherung vertraut wird.
Die gespeicherte Ersetzung erhöht die Wahrscheinlichkeit, dass enchant_dict_suggest das korrekte Wort an erster Stelle der Vorschlagsliste zurückgibt, garantiert dies jedoch nicht bei allen Backends.