3
文字列を自動修正する機能があります。スペルの間違った単語を修正します。私が直面しているこの問題は、それが英国の同等のものにアメリカの綴りの単語を修正しないということです。アメリカの単語を英国の同等物に変換する
$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.');
上記の例ではスペルミスが検出されません。 color
からcolour
に変更するにはどうすればいいですか?favorite
からfavourite
などの単語は同じですか?
「英文」、「en_GB」または「en_UK」の使用については、[Documentation page](http://php.net/manual/en/function.pspell-new.php)に興味深いコメントがあります。それらを試す価値があるかもしれません。 – Tom
@thebluefoxありがとうございました。これは問題を解決するのに役立ちました。これを答えにすると、他人を助けるために正しいとマークします。 – steve
@Steveを完了しました。 – Tom