Start · Sprachen · PHP · Referenz · pspell_check

pspell_check

Funktion

Überprüft, ob ein Wort in der geladenen PSpell-Wörterbuchliste korrekt geschrieben ist.

seit PHP 4.0.2 Kategorie: string

Signatur

pspell_check(PSpell\Dictionary $dictionary, string $word): bool

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

Typ
bool
Beschreibung
Gibt 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";
    }
}
'hello' ist korrekt geschrieben. 'wrold' enthält einen Rechtschreibfehler! 'programming' ist korrekt geschrieben. 'phpp' enthält einen Rechtschreibfehler!

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";
}
'Progrmierung' ist falsch geschrieben. Meinten Sie: Programmierung, Projektierung, ...?

// 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.