Signatur
Beschreibung
pspell_config_create() initialisiert ein Konfigurationsobjekt für die PSpell-Rechtschreibprüfung. Im Gegensatz zu pspell_new() ermöglicht es, vor dem eigentlichen Öffnen des Wörterbuchs weitere Einstellungen (z. B. Wortmodus, Zeichensatz, persönliche Wortlisten) über weitere pspell_config_*-Funktionen vorzunehmen.
Der Hauptvorteil dieser Vorgehensweise liegt darin, dass das Wörterbuch erst dann geladen wird, wenn pspell_new_config() aufgerufen wird – zu diesem Zeitpunkt sind alle Konfigurationsoptionen bereits gesetzt. Das spart Ressourcen und ermöglicht eine feinere Steuerung der Rechtschreibprüfung.
Das erste Pflichtargument language erwartet eine Sprachkennung gemäß ISO 639 (z. B. de oder de_DE). Die optionalen Parameter erlauben die Angabe einer Schreibweise (spelling), eines Jargons (jargon, um zwischen Varianten zu unterscheiden) sowie einer Zeichenkodierung (encoding).
Typische Anwendungsfälle sind mehrsprachige Webanwendungen, Content-Management-Systeme oder Formulare, bei denen Benutzereingaben auf korrekte Rechtschreibung geprüft werden sollen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $language Pflicht | string | Sprachcode nach ISO 639, z. B. 'de', 'de_DE' oder 'en_US'. Bestimmt, welches Wörterbuch geladen wird. |
|
| $spelling | string | Optionale Angabe der Rechtschreibvariante, z. B. 'american', 'british' oder 'canadian' für Englisch. Wird nur für Sprachen benötigt, die mehrere Varianten kennen. |
|
| $jargon | string | Optionaler Jargon-String, der zusammen mit language und spelling eine spezifische Wörterbuchdatei identifiziert, wenn mehrere Varianten installiert sind. |
|
| $encoding | string | Erwartete Zeichenkodierung der zu prüfenden Texte, z. B. 'utf-8', 'iso8859-1' oder 'koi8-r'. Wird leer gelassen, verwendet PSpell die Systemstandardkodierung. |
Rückgabewert
PSpell\Config-Objekt (vor PHP 8.1 eine Ressource) zurück, das an weitere pspell_config_*-Funktionen und abschließend an pspell_new_config() übergeben werden kann. Bei einem Fehler wird false zurückgegeben.Beispiele
Deutsches Wörterbuch mit UTF-8-Kodierung konfigurieren und öffnen
<?php
// Konfiguration für deutsches Wörterbuch erstellen
$config = pspell_config_create('de', '', '', 'utf-8');
// Nur Hauptwörter des Wörterbuchs laden (schneller)
pspell_config_mode($config, PSPELL_FAST);
// Wörterbuch mit der Konfiguration öffnen
$dictionary = pspell_new_config($config);
$word = 'Rechtschreibung';
if (pspell_check($dictionary, $word)) {
echo "'$word' ist korrekt geschrieben.";
} else {
echo "'$word' ist falsch geschrieben.";
$suggestions = pspell_suggest($dictionary, $word);
echo ' Vorschläge: ' . implode(', ', $suggestions);
}
Persönliche Wortliste einbinden
<?php
// Konfiguration für englisches Wörterbuch
$config = pspell_config_create('en', 'american', '', 'utf-8');
// Persönliche Wortliste hinzufügen (eigene Fachbegriffe)
pspell_config_personal($config, '/tmp/my_personal.pws');
// Wörter im Zwischenspeicher zunächst sammeln
pspell_config_repl($config, '/tmp/my_repl.prepl');
$dictionary = pspell_new_config($config);
// Eigenes Wort zur persönlichen Liste hinzufügen
pspell_add_to_personal($dictionary, 'phpdev');
pspell_store_replacement($dictionary, 'teh', 'the');
// Persönliche Liste speichern
pspell_save_wordlist($dictionary);
echo "Wörterbuch mit persönlicher Wortliste erfolgreich konfiguriert.";
// Wichtig · Fallstricke
Erweiterung erforderlich: Die PSpell-Erweiterung muss beim Kompilieren von PHP mit --with-pspell aktiviert worden sein und benötigt die Aspell-Bibliothek sowie die entsprechenden Wörterbücher auf dem System.
PHP 8.1: Ab PHP 8.1.0 gibt die Funktion ein PSpell\Config-Objekt zurück, zuvor war es eine Ressource vom Typ pspell config. Code, der auf Ressourcen prüft (is_resource()), muss angepasst werden.
Wörterbücher installieren: Unter Debian/Ubuntu können Aspell-Wörterbücher z. B. mit apt-get install aspell-de installiert werden. Ohne passendes Wörterbuch schlägt pspell_new_config() fehl.
Zeichenkodierung: Es wird empfohlen, die Kodierung explizit auf 'utf-8' zu setzen, wenn die zu prüfenden Texte in UTF-8 vorliegen, da Fehler bei der Kodierung zu falschen Prüfergebnissen führen können.