PHP Conference Japan 2024

pspell_suggest

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

pspell_suggest建議單字拼寫

說明

pspell_suggest(PSpell\Dictionary $dictionary, string $word): array|false

pspell_suggest() 會傳回給定單字的可能拼寫陣列。

參數

dictionary

一個 PSpell\Dictionary 實例。

word

被測試的單字。

傳回值

傳回可能拼寫的陣列。

更新日誌

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

範例

範例 #1 pspell_suggest() 範例

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

if (!
pspell_check($pspell, "testt")) {
$suggestions = pspell_suggest($pspell, "testt");

foreach (
$suggestions as $suggestion) {
echo
"可能的拼寫: $suggestion<br />";
}
}
?>

新增註記

使用者貢獻的註記 1 則註記

7
webmaster at hostpure dot com
20 年前
如果您嘗試執行類似於 Google「您是不是要查...」的建議功能,並且選擇 pspell_suggest() 函數提供的首個單字,則它似乎無法與自訂詞典和替換功能良好搭配使用。以下列程式碼為例

<?php
$pspell_config
= pspell_config_create("en");
pspell_config_personal($pspell_config, "/home/user/public_html/custom.pws");
pspell_config_repl($pspell_config, "/home/user/public_html/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

$words = preg_split ("/\s+/", $query);
$ii = count($words);

global
$spellchecked;
$spellchecked = "";

for(
$i=0;$i<$ii;$i++){

if (
pspell_check($pspell_link, $words[$i]))
{
$spellchecked .= $words[$i]." ";
}
else
{
$erroneous = "yes";
$suggestions = pspell_suggest($pspell_link, $words[$i]);
$spellchecked .= $suggestions[0]." ";
}
}
if(
$erroneous == "yes")
{
echo
"你是指:<i>".$spellchecked."?";
}
else
{
echo
$spellchecked . " 是一個有效的單字/片語";
}
?>

這段程式碼大部分時候都能正常運作,並在輸入拼寫錯誤時提供建議。 然而,如果您指定了自訂替換,然後搜尋您指定的拼錯單字,那麼如果它不是第一個返回的建議,它就不會被用在「你是指」的最終結果中。 您需要做的是使用 fopen 和 fread 打開自訂字典,然後針對每個建議的單字,檢查它們是否在字典中。 如果建議的單字在自訂字典中,則在「你是指」的部分使用它,如果不是,則捨棄它並嘗試下一個。 希望這可以幫助任何遇到這個問題並試圖獲得更準確建議的人。
To Top