Ich habe eine Funktion, die eine Zeichenfolge automatisch korrigiert. Es korrigiert falsch geschriebene Wörter wie erwartet. Dieses Problem, mit dem ich konfrontiert bin, ist, dass es ein amerikanisches buchstabiertes Wort nicht in sein britisches Äquivalent korrigiert.Konvertieren Sie amerikanische Wörter in britisches Äquivalent
$pspell = pspell_new('en','british','','utf-8',PSPELL_FAST);
function spellCheckWord($word) {
global $pspell;
$autocorrect = TRUE;
// Take the string match from preg_replace_callback's array
$word = $word[0];
// Ignore ALL CAPS
if (preg_match('/^[A-Z]*$/',$word)) return $word;
// Return dictionary words
if (pspell_check($pspell,$word))
return $word;
// Auto-correct with the first suggestion
if ($autocorrect && $suggestions = pspell_suggest($pspell,$word))
return current($suggestions);
// No suggestions
return $word;
}
function spellCheck($string) {
return preg_replace_callback('/\b\w+\b/','spellCheckWord',$string);
}
echo spellCheck('This is a color.');
Das obige Beispiel nicht erkennt einen Rechtschreibfehler. Wie kann ich es ändern color
zu colour
und das gleiche für Wörter wie favorite
zu favourite
?
Es gibt einen interessanten Kommentar auf der [Documentation page] (http://php.net/manual/en/function.pspell-new.php) bezüglich der Verwendung von 'british',' en_GB' oder 'en_UK'. Es könnte sich lohnen, mit diesen zu experimentieren. – Tom
@thebluefox vielen Dank. Das hat mir geholfen, das Problem zu beheben. Wenn Sie dies als Antwort angeben, werde ich es als korrekt markieren, um anderen zu helfen. – steve
Fertig @Steve - froh, dass ich helfen konnte. – Tom