Start · Sprachen · PHP · Referenz · pspell_add_to_personal

pspell_add_to_personal

Funktion

Fügt ein Wort zur persönlichen Wortliste eines PSpell-Wörterbuchs hinzu.

seit PHP 4.0.2 Kategorie: string

Signatur

pspell_add_to_personal(PSpell\Dictionary $dictionary, string $word): bool

Beschreibung

pspell_add_to_personal fügt ein einzelnes Wort zur persönlichen Wortliste hinzu, die mit dem übergebenen PSpell-Wörterbuch-Handle verknüpft ist. Dadurch wird das Wort für die aktuelle Sitzung als korrekt akzeptiert und taucht bei der Rechtschreibprüfung nicht mehr als Fehler auf.

Die persönliche Wortliste existiert zunächst nur im Arbeitsspeicher. Damit die Änderungen dauerhaft gespeichert werden, muss anschließend pspell_save_wordlist aufgerufen werden. Ohne diesen Schritt gehen neu hinzugefügte Wörter beim Beenden des Skripts verloren.

Typische Einsatzbereiche sind Web-Applikationen, in denen Benutzer eigene Fachbegriffe, Namen oder Akronyme ihrer persönlichen Wortliste hinzufügen können, damit diese bei zukünftigen Rechtschreibprüfungen nicht mehr als Fehler markiert werden.

Um eine persönliche Wortliste verwenden zu können, muss das PSpell-Dictionary mit pspell_new_personal oder pspell_new_config zusammen mit einer entsprechenden Konfiguration geöffnet werden, die eine persönliche Wortlistendatei spezifiziert.

Parameter

Name Typ Default Beschreibung
$dictionary Pflicht PSpell\Dictionary Ein gültiges PSpell-Wörterbuch-Handle, das mit pspell_new_personal oder pspell_new_config erstellt wurde.
$word Pflicht string Das Wort, das zur persönlichen Wortliste hinzugefügt werden soll.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, andernfalls false. Beachte, dass das Wort erst nach dem Aufruf von pspell_save_wordlist dauerhaft gespeichert ist.

Beispiele

Wort zur persönlichen Wortliste hinzufügen und speichern

<?php
// Persönliches Wörterbuch öffnen (Wortlistendatei wird bei Bedarf angelegt)
$pspell = pspell_new_personal('/var/www/user_wordlist.pws', 'de');

if ($pspell === false) {
    die('PSpell-Wörterbuch konnte nicht geöffnet werden.');
}

$word = 'Fachbegriff';

// Prüfen, ob das Wort bereits korrekt erkannt wird
if (!pspell_check($pspell, $word)) {
    // Wort zur persönlichen Wortliste hinzufügen
    pspell_add_to_personal($pspell, $word);

    // Änderungen dauerhaft speichern
    pspell_save_wordlist($pspell);

    echo "'$word' wurde zur persönlichen Wortliste hinzugefügt.\n";
} else {
    echo "'$word' ist bereits im Wörterbuch vorhanden.\n";
}
'Fachbegriff' wurde zur persönlichen Wortliste hinzugefügt.

Mehrere benutzerdefinierte Wörter auf einmal hinzufügen

<?php
$config = pspell_config_create('de');
pspell_config_personal($config, '/var/www/custom_words.pws');

$pspell = pspell_new_config($config);

if ($pspell === false) {
    die('PSpell-Konfiguration konnte nicht geladen werden.');
}

$customWords = ['Eigenname', 'Produktname', 'Technikbegriff'];

foreach ($customWords as $word) {
    if (!pspell_check($pspell, $word)) {
        pspell_add_to_personal($pspell, $word);
        echo "Hinzugefügt: $word\n";
    }
}

// Alle Änderungen auf einmal speichern
pspell_save_wordlist($pspell);
echo "Wortliste erfolgreich gespeichert.\n";
Hinzugefügt: Eigenname Hinzugefügt: Produktname Hinzugefügt: Technikbegriff Wortliste erfolgreich gespeichert.

// Wichtig · Fallstricke

Persistenz: Wörter, die mit pspell_add_to_personal hinzugefügt werden, sind nur für die aktuelle Sitzung gültig, solange pspell_save_wordlist nicht aufgerufen wird. Bei lang laufenden Anwendungen empfiehlt es sich, das Speichern nach jedem Hinzufügen oder am Ende einer Benutzeraktion durchzuführen.

Ab PHP 8.1: Das erste Argument ist vom Typ PSpell\Dictionary (Objekt); in älteren PHP-Versionen wurde stattdessen ein int-Handle verwendet.

Eingabevalidierung: Benutzereingaben sollten vor dem Hinzufügen bereinigt werden, um unerwünschte oder schädliche Zeichenketten in der Wortlistendatei zu vermeiden. Erlauben Sie nur alphabetische Zeichenketten, die dem erwarteten Format entsprechen.