我有一个 PHP 文件,每一行都有不同的 html 信息,例如:
0 <div><a href="post1.html">This post has keyword1 and keyword2</a></div>
1 </div><a href="post2.html">This post has keyword3 and keyword4</a></div>
2 </div><a href="post3.html">This post has keyword2 and keyword5</a></div>
现在我有一个 PHP 脚本,当它找到我通过数组给它的关键字时,它会从这个文件中打印一行。这是脚本:
<?php
$filename = 'post_file.php';
$KEYWORDS_to_find = array("keyword1","keyword2");
$i=0;
foreach($KEYWORDS_to_find as $keyword){
foreach(file($filename) as $fli=>$fl){
if($i>=5) break;
if(stripos($fl, $keyword)!==false){
echo $fl;
$i++;
}
}
}
?>
它开始在 post_file.php 的每一行中搜索“keyword1”,直到最后。如果找到“keyword1”,在本例中为第 0 行,则打印第 0 行的全部内容。当它以“keyword1”结束时,使用数组的第二个元素或关键字开始相同的过程,在本例中为“keyword2” ”。该脚本在从文件中打印 5 行后停止。
我试图弄清楚的问题是它打印了已经打印的行。例如,“keyword2”存在于第 0 行和第 2 行,因此它会打印第 0 行两次,因为在搜索“keyword1”时已经打印了第 0 行。我现在的问题是,我该怎么做才能避免打印已经打印的行?
谢谢,我很感激任何帮助。