Signatur
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
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.";
}
}
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));
}
}
// 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.