我覺得有必要補充說明使用此函式進行批次拼寫檢查。先前發佈的範例使用空格作為每個單字的分隔符號進行 implode 處理。然而,在某些情況下,這樣做不會返回所需的結果。例如,「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;
}
?>