搜索包含X的行,但在找到时显示多行

时间:2012-07-21 12:52:41

标签: php mysql html search search-engine

直截了当:

ip ssh version 2
no aaa new-model
!
dot11 ssid lala
    vlan 500
    authentication open 
    authentication key-management wpa
    wpa-psk ascii 100 40345352352352352352255325
!
!
crypto pki trustpoint TP-self-signed-3007141781

我想要搜索关键字'vlan'。我的代码返回“vlan 500”,这是正确的。它还返回'vlan'所在的所有行。

现在我希望搜索程序(php)返回整个块。在上述情况下:

!
dot11 ssid lala
    vlan 500
    authentication open 
    authentication key-management wpa
    wpa-psk ascii 100 40345352352352352352255325
!

或没有'!' ofcourse。

有任何想法可以快速有效地实现这一目标吗?

ps:现在我正在使用

while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
....

foreach(preg_split("/(\r?\n)/", $config) as $line){
...

在其中,以获取搜索词出现的行。

1 个答案:

答案 0 :(得分:0)

我设法通过保存块启动的索引来实现这一点。我通过检查每行前面的空格来开始块,并且在我找到匹配的单词之前的最后一个块是我开始显示行的索引。