我已经创建了一个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包含
Hello你好Hello
上面的代码将只打印: Hello
我要做的是打印Hellothere,以及它包含两个有效的单词Hello和那里
发布于 2016-01-24 22:24:36
(编辑)
您可以尝试将常量PSPELL_RUN_TOGETHER作为选项传递:
$pspell_link = pspell_new( "en", Null, Null, Null, PSPELL_RUN_TOGETHER );来自PHP文档:
模式参数是拼写检查器将在其中工作的模式。有几种可用的模式: PSPELL_FAST -快速模式(最少的建议数) PSPELL_NORMAL -正常模式(更多建议) PSPELL_BAD_SPELLERS -慢模式(很多建议) PSPELL_RUN_TOGETHER -把结合在一起的词当作合法的复合词.也就是说,“the a”将是一个法律复合词,尽管这两个词之间应该有一个空格。更改此设置只会影响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;
}
}
(...)https://stackoverflow.com/questions/34982207
复制相似问题