2024 年日本 PHP 研討會

pspell_check

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_check檢查單字

說明

pspell_check(PSpell\Dictionary $dictionary, string $word): bool

pspell_check() 函式會檢查單字的拼寫是否正確。

參數

dictionary

一個 PSpell\Dictionary 實例。

word

要測試的單字。

回傳值

如果拼寫正確,則返回 true,否則返回 false

更新日誌

版本 說明
8.1.0 dictionary 參數現在需要一個 PSpell\Dictionary 實例;先前需要的是一個 資源

範例

範例 #1 pspell_check() 範例

<?php
$pspell
= pspell_new("en");

if (
pspell_check($pspell, "testt")) {
echo
"拼寫正確";
} else {
echo
"抱歉,拼寫錯誤";
}
?>

新增註解

使用者貢獻的註解 3 則註解

0
si at youbeenx dot com
19 年前
我覺得有必要補充說明使用此函式進行批次拼寫檢查。先前發佈的範例使用空格作為每個單字的分隔符號進行 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;

}

?>
-3
digit6 at gmail dot com
7 年前
用於分割查詢字詞的更好模式是

preg_match_all('/[^\w\']/+/', $query, $word)
// $words 包含了這些字詞。
-4
Jcart
19 年前
<?php

// 應該使用 explode 而不是 implode
//$word = implode(" ", $message);
$word = explode(" ", $message);
foreach(
$word as $k => $v) {
if (
pspell_check($pspell_link, $v)) {
echo
"拼寫正確";
} else {
echo
"抱歉,拼寫錯誤";
};
};

?>
To Top