在foreach和

时间:2016-05-18 02:00:38

标签: php database

由于我的英语不是很好,如果我的问题不清楚,我想先道歉。 我的代码是这样的:

$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
}

任何建议都表示赞赏。

0 个答案:

没有答案