2024 年 PHP 大会日本站

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 条注释

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