我创建了一个PHP代码,用于从文本文件中提取有效单词:
$pspell_link = pspell_new("en");
$handle = fopen("list.txt", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
$line = str_replace(' ', '', $line);
$line = preg_replace('/\s+/', '', $line);
if (pspell_check($pspell_link, $line))
{
echo $line."<br>";
}
}
}
我们假设list.txt包含
ghgh fghy 你好 Hellothere
上面的代码只会打印:Hello
我要做的是打印Hellothere以及它包含两个有效的单词Hello和那里
答案 0 :(得分:0)
您可以尝试传递常量PSPELL_RUN_TOGETHER
作为选项:
$pspell_link = pspell_new( "en", Null, Null, Null, PSPELL_RUN_TOGETHER );
来自PHP文档:
mode参数是拼写检查器工作的模式。有几种模式可供选择:
PSPELL_FAST - 快速模式(建议的最少数量)
PSPELL_NORMAL - 正常模式(更多建议)
PSPELL_BAD_SPELLERS - 慢速模式(很多建议)
PSPELL_RUN_TOGETHER - 将一起运行的单词视为合法的化合物。也就是说,“thecat”将是一个合法的化合物,尽管这两个词之间应该有一个空格。更改此设置仅影响pspell_check()返回的结果; pspell_suggest()仍将返回建议。
此外,替换line
中的所有空格,将“ghghfghyHelloHellothere”之类的字符串传递给pspell_check()
尝试爆炸:
(...)
$words = explode( ' ', $line );
foreach($words as $word)
{
if (pspell_check($pspell_link, $word))
{
echo "---> ".$word.PHP_EOL;
}
}
(...)