Signatur
Beschreibung
pspell_check prüft mithilfe der GNU Aspell-Bibliothek, ob das übergebene $word in dem angegebenen Wörterbuch als korrekt gilt. Die Funktion gibt true zurück, wenn das Wort bekannt ist, und false, wenn es als falsch geschrieben eingestuft wird.
Bevor pspell_check aufgerufen werden kann, muss über pspell_new, pspell_new_config oder pspell_new_personal ein Wörterbuch geöffnet werden. Das zurückgegebene Wörterbuch-Objekt (bzw. in älteren PHP-Versionen ein Integer-Handle) wird als erstes Argument übergeben.
Typische Anwendungsfälle sind einfache Rechtschreibprüfungen in Formulareingaben, CMS-Backends oder Texteditoren, bei denen vor dem Speichern auf offensichtliche Tippfehler geprüft werden soll. Für detailliertere Informationen (z. B. Vorschläge zur Korrektur) kann pspell_suggest verwendet werden.
Hinweis: Die pspell-Erweiterung muss beim Kompilieren von PHP mit --with-pspell aktiviert worden sein, und die GNU Aspell-Bibliothek muss auf dem System installiert sein.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dictionary Pflicht | PSpell\Dictionary | Das Wörterbuch-Objekt, das zuvor mit pspell_new, pspell_new_config oder pspell_new_personal geöffnet wurde. In PHP < 8.1 war dies ein int-Handle. |
|
| $word Pflicht | string | Das zu prüfende Wort. Groß- und Kleinschreibung wird je nach Wörterbuch und Konfiguration berücksichtigt. |
Rückgabewert
true zurück, wenn das Wort als korrekt erkannt wurde, andernfalls false.Beispiele
Einfache Rechtschreibprüfung eines englischen Wortes
<?php
// Wörterbuch für Englisch öffnen
$dictionary = pspell_new('en');
$words = ['hello', 'wrold', 'programming', 'phpp'];
foreach ($words as $word) {
if (pspell_check($dictionary, $word)) {
echo "'$word' ist korrekt geschrieben.\n";
} else {
echo "'$word' enthält einen Rechtschreibfehler!\n";
}
}
Rechtschreibprüfung mit Korrekturvorschlägen
<?php
// Deutsches Wörterbuch öffnen
$dictionary = pspell_new('de');
$eingabe = 'Progrmierung';
if (!pspell_check($dictionary, $eingabe)) {
echo "'$eingabe' ist falsch geschrieben.\n";
$vorschlaege = pspell_suggest($dictionary, $eingabe);
if (!empty($vorschlaege)) {
echo 'Meinten Sie: ' . implode(', ', array_slice($vorschlaege, 0, 3)) . "?\n";
}
} else {
echo "'$eingabe' ist korrekt geschrieben.\n";
}
// Wichtig · Fallstricke
Deprecation / API-Änderung: Ab PHP 8.1.0 gibt pspell_new und verwandte Funktionen eine PSpell\Dictionary-Instanz zurück statt eines Integer-Handles. Code, der das alte Integer-Handle verwendet, muss für PHP 8.1+ angepasst werden.
Voraussetzungen: Die pspell-Erweiterung ist nicht standardmäßig in PHP enthalten. Sie muss beim Kompilieren mit --with-pspell aktiviert werden, und die GNU Aspell-Bibliothek samt Wörterbüchern muss auf dem System installiert sein (z. B. apt install aspell aspell-de).
Sicherheit: Benutzereingaben, die an pspell_check übergeben werden, sollten grundsätzlich auf Länge und Format geprüft werden, um unnötige Last durch sehr lange Strings zu vermeiden. Die Funktion selbst führt keine gefährlichen Operationen aus.