由于我的英语不是很好,如果我的问题不清楚,我想先道歉。 我的代码是这样的:
$word = explode(' ',$abstract); // <== explode('space',$abstract)
foreach($word as $word){
$KMP = new KMP();
$b = mysqli_query("select * from my_table");
while($text = mysqli_fetch_array($b)){
if($word!=''){
$result = $KMP->KMPSearch($word,$text['$abstract']);
echo "Result Words : ".$word."<br/>";
echo "Result Words in number : ".count($result)."<br/>";
echo "On String : ";
foreach($result as $h) echo $h." ";
echo "<br/>";
}
echo "<div style='width:600px;'>";
echo "<h3>".$text['title']."</h3><hr/>";
echo nl2br(str_replace($word,"<font color='red'>".$word."</font>",$text['abstract']));
echo "</div>";
}
}
此代码的输出如下:
TITLE HERE
摘要输出告诉我们病毒
Result Words : **virus**
Result Words in Number : 1
On String : 43
因为在foreach $word
内部循环,所以它按my_table
中的每个单词进行搜索。所以它会像这样循环:
TITLE HERE
输出告诉我们有关病毒的摘要
Result Words : **output**
Result Words in Number : 1
On String : 0
TITLE HERE
输出摘要,告诉我们病毒
Result Words : **abstract**
Result Words in Number : 1
On String : 15
TITLE HERE
摘要输出告诉我们病毒
Result Words : **virus**
Result Words in Number : 1
On String : 43
我想要的结果是结果字数。
如果案件如上所述,结果是找到3个字。
if ($result<5)
{
//upload has been granted
}
elseif ($result>=5)
{
//can't upload
}
任何建议都表示赞赏。