Start · Sprachen · PHP · Referenz · pspell_new_config

pspell_new_config

Funktion

Öffnet ein neues PSpell-Wörterbuch auf Basis einer zuvor erstellten Konfiguration und gibt ein Wörterbuch-Handle zurück.

seit PHP 5.0.0 Kategorie: string

Signatur

pspell_new_config(PSpell\Config $config): PSpell\Dictionary|false

Beschreibung

pspell_new_config() lädt ein Rechtschreibwörterbuch anhand einer Konfiguration, die zuvor mit pspell_config_create() angelegt und mit weiteren pspell_config_*-Funktionen angepasst wurde. Diese Funktion ist der flexibelste Weg, ein PSpell-Wörterbuch zu öffnen, da alle Optionen vorab detailliert konfiguriert werden können.

Der typische Arbeitsablauf ist: zuerst eine Konfiguration mit pspell_config_create() erzeugen, diese mit Funktionen wie pspell_config_mode(), pspell_config_personal() oder pspell_config_repl() anpassen und abschließend das Wörterbuch per pspell_new_config() laden. Das zurückgegebene Handle wird dann für Prüf- und Korrekturoperationen verwendet.

Im Vergleich zu pspell_new(), das nur einfache Parameter entgegennimmt, erlaubt diese Funktion eine präzise Steuerung aller Aspekte des Wörterbuchs – ideal, wenn persönliche Wortlisten, spezielle Ersetzungsdateien oder nicht-standardmäßige Konfigurationen benötigt werden.

Voraussetzung ist, dass die PSpell-Erweiterung (ext/pspell) sowie die aspell-Bibliothek und das jeweilige Sprachpaket auf dem System installiert sind.

Parameter

Name Typ Default Beschreibung
$config Pflicht PSpell\Config Ein Konfigurations-Handle, das zuvor mit pspell_config_create() erzeugt wurde. Alle auf diesem Handle vorgenommenen Einstellungen (Modus, persönliche Wortliste, Ersetzungsdatei usw.) werden beim Öffnen des Wörterbuchs angewendet.

Rückgabewert

Typ
PSpell\Dictionary|false
Beschreibung
Gibt bei Erfolg ein PSpell\Dictionary-Objekt (bzw. vor PHP 8.1 eine Ressource) zurück, das als Handle für weitere PSpell-Operationen genutzt wird. Im Fehlerfall (z. B. Sprachpaket nicht gefunden) wird false zurückgegeben.

Beispiele

Wörterbuch mit Konfiguration laden und Wort prüfen

<?php
// Konfiguration für Deutsch erstellen
$config = pspell_config_create('de');

// Nur vollständige Wörter vorschlagen (schneller Modus)
pspell_config_mode($config, PSPELL_FAST);

// Wörterbuch auf Basis der Konfiguration laden
$dictionary = pspell_new_config($config);

if ($dictionary === false) {
    echo 'Wörterbuch konnte nicht geladen werden.';
} else {
    $word = 'Rechtschreibung';
    if (pspell_check($dictionary, $word)) {
        echo "'$word' ist korrekt geschrieben.";
    } else {
        echo "'$word' ist falsch geschrieben.";
    }
}
'Rechtschreibung' ist korrekt geschrieben.

Persönliche Wortliste und Ersetzungsdatei konfigurieren

<?php
// Konfiguration für Englisch erstellen
$config = pspell_config_create('en');

// Persönliche Wortliste einbinden (z. B. Fachbegriffe)
pspell_config_personal($config, '/var/www/spell/my_words.pws');

// Datei mit benutzerdefinierten Ersetzungen
pspell_config_repl($config, '/var/www/spell/my_repl.prepl');

// Modus: alle möglichen Vorschläge
pspell_config_mode($config, PSPELL_NORMAL);

// Wörterbuch laden
$dictionary = pspell_new_config($config);

if ($dictionary !== false) {
    $word = 'errror';
    if (!pspell_check($dictionary, $word)) {
        $suggestions = pspell_suggest($dictionary, $word);
        echo 'Vorschläge für "' . $word . '": ' . implode(', ', array_slice($suggestions, 0, 3));
    }
}
Vorschläge für "errror": error, mirror, arrear

// Wichtig · Fallstricke

Deprecation: Die PSpell-Erweiterung gilt als veraltet und wurde in PHP 8.4 als deprecated markiert. Für neue Projekte sollten Alternativen wie externe Rechtschreibdienste oder die enchant-Erweiterung in Betracht gezogen werden.

PHP 8.1: Ab PHP 8.1 gibt pspell_new_config() ein PSpell\Dictionary-Objekt zurück statt einer Ressource. Code, der mit is_resource() prüft, muss angepasst werden.

Systemvoraussetzungen: Die aspell-Bibliothek und das entsprechende Sprachpaket müssen auf dem Server installiert sein (z. B. aspell-de für Deutsch). Fehlt das Paket, gibt die Funktion false zurück.