PHP Conference Japan 2024

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 个备注

si at youbeenx dot com
19 年前
我觉得扩展一下使用此函数进行批量拼写检查会有所帮助。前面发布的示例使用空格作为分隔符来合并每个单词,但这在某些情况下无法达到预期的效果。例如,“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;

}

?>
digit6 at gmail dot com
7 年前
分割查询单词的更好模式是

preg_match_all('/[^\w\']/+/', $query, $word)
// $words 包含单词。
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