Signatur
Beschreibung
pspell_suggest() fragt das angegebene PSpell-Wörterbuch nach alternativen Schreibweisen für das übergebene Wort ab und liefert ein Array mit Vorschlägen. Die Funktion wird typischerweise dann eingesetzt, wenn pspell_check() ein Wort als falsch geschrieben erkannt hat und dem Nutzer Korrekturalternativen angeboten werden sollen.
Das PSpell-System nutzt intern die Aspell-Bibliothek und berücksichtigt bei der Vorschlagsgenerierung die beim Öffnen des Wörterbuchs gewählten Optionen (z. B. Modus, Sprache). Über pspell_new() oder pspell_new_config() kann das Wörterbuch entsprechend konfiguriert werden, bevor Vorschläge angefordert werden.
Die Funktion eignet sich besonders für Webanwendungen, die eine Rechtschreibprüfung für Benutzereingaben anbieten – zum Beispiel in Formularen, Editoren oder Kommentarbereichen. Die Qualität und Anzahl der Vorschläge hängt vom gewählten PSpell-Modus ab (z. B. PSPELL_FAST, PSPELL_NORMAL oder PSPELL_BAD_SPELLERS).
Hinweis: Die PSpell-Erweiterung muss beim Kompilieren von PHP aktiviert werden und erfordert die installierten Aspell-Bibliotheken sowie passende Sprachpakete auf dem Server.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dictionary Pflicht | PSpell\Dictionary | Eine PSpell-Wörterbuch-Instanz, die zuvor mit pspell_new(), pspell_new_personal() oder pspell_new_config() erzeugt wurde. |
|
| $word Pflicht | string | Das zu prüfende Wort, für das Rechtschreibvorschläge generiert werden sollen. |
Rückgabewert
false zurückgegeben. Wenn keine Vorschläge gefunden werden, kann das Array leer sein.Beispiele
Einfache Rechtschreibvorschläge ausgeben
<?php
// Wörterbuch für Englisch öffnen
$dictionary = pspell_new('en');
$word = 'recieve'; // absichtlich falsch geschrieben
if (!pspell_check($dictionary, $word)) {
$suggestions = pspell_suggest($dictionary, $word);
echo "Das Wort '$word' ist falsch geschrieben.\n";
echo "Vorschläge:\n";
foreach ($suggestions as $suggestion) {
echo ' - ' . $suggestion . "\n";
}
} else {
echo "Das Wort '$word' ist korrekt geschrieben.\n";
}
Rechtschreibprüfung mit benutzerdefiniertem Modus und Konfiguration
<?php
// Konfiguration erstellen und Modus setzen
$config = pspell_config_create('de');
pspell_config_mode($config, PSPELL_NORMAL);
// Wörterbuch anhand der Konfiguration öffnen
$dictionary = pspell_new_config($config);
$falscheWoerter = ['Klass', 'Programirung', 'Birtschaft'];
foreach ($falscheWoerter as $wort) {
if (!pspell_check($dictionary, $wort)) {
$vorschlaege = pspell_suggest($dictionary, $wort);
if (!empty($vorschlaege)) {
echo "'$wort' -> Vorschläge: " . implode(', ', array_slice($vorschlaege, 0, 3)) . "\n";
} else {
echo "'$wort' -> Keine Vorschläge gefunden.\n";
}
}
}
// Wichtig · Fallstricke
Deprecation / Verfügbarkeit: Ab PHP 8.1.0 wurden die PSpell-Ressource-Handle durch das Objekt PSpell\Dictionary ersetzt. In älteren PHP-Versionen (5.x – 8.0) wird stattdessen ein int-Handle übergeben.
Abhängigkeiten: Die Funktion setzt voraus, dass die PHP-Erweiterung pspell installiert und aktiviert ist sowie die entsprechenden Aspell-Sprachpakete auf dem System vorhanden sind. Fehlt das Sprachpaket für die gewünschte Sprache, schlägt pspell_new() fehl.
Alternativen: Für moderne PHP-Projekte empfiehlt sich der Einsatz von externen Diensten oder Bibliotheken wie php-speller oder webbasierten APIs, da die PSpell-Erweiterung kaum noch aktiv weiterentwickelt wird und in einigen Server-Umgebungen nicht verfügbar ist.