Start · Sprachen · PHP · Referenz · pspell_new_personal

pspell_new_personal

Funktion

Lädt ein neues Aspell-Wörterbuch mit einer persönlichen Wortliste und gibt ein <code>PSpell\Dictionary</code>-Objekt zurück.

seit PHP 4.0.2 Kategorie: string

Signatur

pspell_new_personal(string $personal, string $language, string $spelling = '', string $jargon = '', string $encoding = '', int $mode = 0): PSpell\Dictionary|false

Beschreibung

pspell_new_personal öffnet ein Aspell-Wörterbuch für die angegebene Sprache und bindet gleichzeitig eine persönliche Wortliste ein. Diese persönliche Wortliste ist eine Textdatei, in der benutzerdefinierte Wörter gespeichert werden können, die das Standard-Wörterbuch nicht kennt. Neue Wörter können zur persönlichen Liste hinzugefügt und anschließend mit pspell_save_wordlist dauerhaft gespeichert werden.

Die Funktion eignet sich besonders für Anwendungen, bei denen Benutzer individuelle Fachbegriffe, Eigennamen oder firmeneigene Ausdrücke zur Rechtschreibprüfung hinzufügen sollen. Typische Einsatzszenarien sind CMS-Systeme, E-Mail-Clients oder Texteditoren mit eingebetteter Rechtschreibkorrektur.

Der Parameter $mode steuert den Prüfmodus und kann mit den Konstanten PSPELL_FAST, PSPELL_NORMAL oder PSPELL_BAD_SPELLERS angegeben werden. Soll die persönliche Wortliste zunächst nur im Arbeitsspeicher gepflegt werden, steht pspell_add_to_personal zur Verfügung; für die Sitzungswortliste bietet sich pspell_add_to_session an.

Hinweis: Die pspell-Erweiterung muss bei der PHP-Kompilierung aktiviert worden sein (--with-pspell) und setzt eine funktionierende Aspell-Installation auf dem Server voraus.

Parameter

Name Typ Default Beschreibung
$personal Pflicht string Vollständiger Pfad zur persönlichen Wortlistendatei. Existiert die Datei noch nicht, wird sie beim Speichern mit pspell_save_wordlist angelegt.
$language Pflicht string Sprachcode nach ISO 639 (z. B. 'de' für Deutsch oder 'en' für Englisch), optional gefolgt von einem ISO-3166-Ländercode (z. B. 'de_DE').
$spelling string Optionale Schreibweise für Sprachen mit mehreren Varianten, z. B. 'american' oder 'british' für Englisch.
$jargon string Zusätzliche Information zur Auswahl des richtigen Wörterbuchs, wenn mehrere Wörterbücher für dieselbe Sprache und Schreibweise vorhanden sind.
$encoding string Zeichenkodierung der Eingabe, z. B. 'utf-8', 'iso8859-1' oder 'koi8-r'. Standardmäßig wird die Systemeinstellung verwendet.
$mode int 0 Betriebsmodus der Rechtschreibprüfung. Mögliche Konstanten: PSPELL_FAST (schnell, weniger Vorschläge), PSPELL_NORMAL (Standard), PSPELL_BAD_SPELLERS (viele Vorschläge, langsamer). Kombinierbar mit PSPELL_RUN_TOGETHER für zusammengeschriebene Wörter.

Rückgabewert

Typ
PSpell\Dictionary|false
Beschreibung
Gibt bei Erfolg ein PSpell\Dictionary-Objekt (vor PHP 8.1 eine Ganzzahl als Ressource-ID) zurück. Im Fehlerfall, etwa wenn das Wörterbuch nicht gefunden wird oder die persönliche Wortlistendatei nicht zugänglich ist, wird false zurückgegeben.

Beispiele

Einfache Rechtschreibprüfung mit persönlicher Wortliste

<?php
// Persönliche Wortliste einbinden und deutsches Wörterbuch öffnen
$pspell = pspell_new_personal(
    '/var/www/data/meine_woerter.pws',
    'de',
    '',
    '',
    'utf-8',
    PSPELL_NORMAL
);

if ($pspell === false) {
    echo 'Wörterbuch konnte nicht geladen werden.';
    exit;
}

$wort = 'Rechtschreibung';
if (pspell_check($pspell, $wort)) {
    echo "'$wort' ist korrekt geschrieben.\n";
} else {
    echo "'$wort' ist falsch geschrieben. Vorschläge: ";
    $vorschlaege = pspell_suggest($pspell, $wort);
    echo implode(', ', $vorschlaege) . "\n";
}
'Rechtschreibung' ist korrekt geschrieben.

Eigenes Wort zur persönlichen Wortliste hinzufügen und speichern

<?php
$pfad = '/var/www/data/meine_woerter.pws';

$pspell = pspell_new_personal(
    $pfad,
    'de',
    '',
    '',
    'utf-8',
    PSPELL_NORMAL
);

if ($pspell === false) {
    echo 'Fehler beim Laden des Wörterbuchs.';
    exit;
}

$fachbegriff = 'Microservice';

if (!pspell_check($pspell, $fachbegriff)) {
    // Wort zur persönlichen Liste hinzufügen
    pspell_add_to_personal($pspell, $fachbegriff);
    // Persönliche Wortliste auf der Festplatte speichern
    pspell_save_wordlist($pspell);
    echo "'$fachbegriff' wurde zur persönlichen Wortliste hinzugefügt und gespeichert.\n";
} else {
    echo "'$fachbegriff' ist bereits im Wörterbuch vorhanden.\n";
}
'Microservice' wurde zur persönlichen Wortliste hinzugefügt und gespeichert.

// Wichtig · Fallstricke

Dateizugriff: Der PHP-Prozess (Webserver-Benutzer) benötigt Schreibrechte auf die persönliche Wortlistendatei sowie auf das übergeordnete Verzeichnis, damit pspell_save_wordlist funktioniert. Andernfalls schlägt das Speichern stillschweigend fehl oder gibt false zurück.

Deprecated: Ab PHP 8.1 werden Ressource-IDs durch das Objekt PSpell\Dictionary ersetzt. Code, der numerische Ressource-IDs erwartet, muss angepasst werden.

Erweiterung: Die pspell-Erweiterung ist in vielen Standard-PHP-Paketen nicht vorinstalliert. Prüfen Sie mit extension_loaded('pspell'), ob sie verfügbar ist. Für moderne Projekte kann die Bibliothek php-spellchecker eine portablere Alternative sein.