我觉得扩展一下使用此函数进行批量拼写检查会有所帮助。前面发布的示例使用空格作为分隔符来合并每个单词,但这在某些情况下无法达到预期的效果。例如,“Hello, I like coding.” 将返回一个包含两个问题的数组,“Hello,” 和 “coding.”,这两个单词拼写正确,但 pspell_check() 会认为它们拼写错误,因为逗号或句点与单词一起传递给了函数。下面的示例允许您仅将单词(使用正则表达式忽略标点符号等语法)提取到数组中,然后添加 html 字体标签,以红色突出显示所有拼写错误的单词,然后再返回字符串。
<?
函数 SpellCheck($string) {
$pspell_link = pspell_new("en");
preg_match_all("/[A-Z\']{1,16}/i", $string, $words);
for ($i = 0; $i < count($words[0]); $i++) {
if (!pspell_check($pspell_link, $words[0][$i])) {
$string = str_replace($words[0][$i], "<font color=\"#FF0000\">" . $words[0][$i] . "</font>", $string);
}
}
return $string;
}
?>