Start · Sprachen · PHP · Referenz · enchant_dict_add_to_session

enchant_dict_add_to_session

Funktion

Fügt ein Wort temporär zur aktuellen Enchant-Rechtschreibprüfungssitzung hinzu, ohne es dauerhaft im Wörterbuch zu speichern.

seit PHP 5.3.0 Kategorie: string

Signatur

enchant_dict_add_to_session(EnchantDictionary $dictionary, string $word): void

Beschreibung

enchant_dict_add_to_session() fügt das angegebene Wort zur laufenden Sitzung des Enchant-Wörterbuchs hinzu. Das bedeutet, dass das Wort für die Dauer der Sitzung als korrekt geschrieben gilt und bei zukünftigen Prüfungen mit enchant_dict_check() keinen Fehler mehr auslöst.

Im Gegensatz zu enchant_dict_add() wird das Wort nicht dauerhaft im persönlichen Wörterbuch des Benutzers gespeichert. Sobald die Sitzung beendet und das Wörterbuch freigegeben wird, ist die Ergänzung verloren. Diese Funktion ist daher ideal für einmalige, anwendungsspezifische Begriffe wie Firmennamen, Produktbezeichnungen oder temporäre Fachterminologie.

Typische Einsatzszenarien sind Webanwendungen, die Benutzereingaben auf Rechtschreibung prüfen und dabei bestimmte domänenspezifische Begriffe als gültig behandeln sollen, ohne das systemweite Wörterbuch zu verändern.

Parameter

Name Typ Default Beschreibung
$dictionary Pflicht EnchantDictionary Ein gültiges EnchantDictionary-Objekt, das zuvor mit enchant_broker_request_dict() oder enchant_broker_request_pwl_dict() erzeugt wurde.
$word Pflicht string Das Wort, das der aktuellen Rechtschreibprüfungssitzung hinzugefügt werden soll. Groß- und Kleinschreibung wird beachtet.

Rückgabewert

Typ
void
Beschreibung
Diese Funktion gibt keinen Wert zurück.

Beispiele

Temporäres Hinzufügen eines Firmennamens zur Sitzung

<?php
$broker = enchant_broker_init();
$dict = enchant_broker_request_dict($broker, 'de_DE');

$firmenname = 'Programmierung';

// Vor dem Hinzufügen: Wort möglicherweise als falsch markiert
if (!enchant_dict_check($dict, $firmenname)) {
    echo "'{$firmenname}' wird als falsch erkannt. Füge es zur Sitzung hinzu.\n";
    enchant_dict_add_to_session($dict, $firmenname);
}

// Nach dem Hinzufügen: Wort gilt als korrekt
if (enchant_dict_check($dict, $firmenname)) {
    echo "'{$firmenname}' wird nun in dieser Sitzung als korrekt akzeptiert.\n";
}

enchant_broker_free($broker);
'Programmierung' wird als falsch erkannt. Füge es zur Sitzung hinzu. 'Programmierung' wird nun in dieser Sitzung als korrekt akzeptiert.

Mehrere Fachbegriffe für eine Prüfsitzung registrieren

<?php
$broker = enchant_broker_init();
$dict = enchant_broker_request_dict($broker, 'de_DE');

$fachbegriffe = ['PHP', 'API', 'JSON', 'YAML', 'HTTP'];

foreach ($fachbegriffe as $begriff) {
    enchant_dict_add_to_session($dict, $begriff);
}

$texte = ['PHP ist toll.', 'Ich mag JSON.', 'Das ist ein Fehlr.'];

foreach ($texte as $text) {
    $woerter = explode(' ', str_replace('.', '', $text));
    foreach ($woerter as $wort) {
        if (!enchant_dict_check($dict, $wort)) {
            $vorschlaege = enchant_dict_suggest($dict, $wort);
            echo "Unbekanntes Wort: '{$wort}'. Vorschläge: " . implode(', ', array_slice($vorschlaege, 0, 3)) . "\n";
        }
    }
}

enchant_broker_free($broker);
Unbekanntes Wort: 'Fehlr'. Vorschläge: Fehler, Fehl, Fehlr

// Wichtig · Fallstricke

Sitzungsbezogen: Die mit dieser Funktion hinzugefügten Wörter gelten nur für die Lebensdauer des EnchantDictionary-Objekts. Nach dem Aufruf von enchant_broker_free() oder am Ende des Skripts sind sie nicht mehr verfügbar.

Unterschied zu enchant_dict_add(): Soll ein Wort dauerhaft im persönlichen Wörterbuch des Benutzers gespeichert werden, muss stattdessen enchant_dict_add() verwendet werden.

Ab PHP 8.0 wird statt einer Ressource ein EnchantDictionary-Objekt erwartet. Älterer Code, der Ressourcen verwendet, muss entsprechend angepasst werden.