我有一个自动更正字符串的功能。它按预期更正拼写错误的单词。我面临的这个问题是它不会将美国拼写的单词纠正为英国的对应词。
$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.');
上面的示例未检测到拼写错误。对于诸如to之类的词,我怎样才能让它变为color
和相同?colour
favorite
favourite