突出显示搜索结果的部分内容

时间:2013-12-08 13:30:56

标签: php

我正在使用下面的代码突出显示file_get_content中的一个单词并转到锚点。

$file='
IAR6=1002
SHF6=1
REF6=0002
TY7=2
DATE7=20130820182357
STAT_N7=1002
SEQ7=0002110000001
STA7=000005
TY8=2
DATE8=20130820182429
STAT_N8=1002
SH8=1
OP8=S123
SEQ8=0002120000081
';

$Seq = 0002110000001;
$text = preg_replace("/\b($Seq)\b/i", '<span class="highlight"><a name="here">\1</a></span>', $file);

现在这个亮点:0002110000001

我想强调相同索引号的所有部分。

例如: 寻找0002110000001

仅在数字为7的情况下突出显示txt的这一部分

TY7=2
DATE7=20130820182357
STAT_N7=1002
SEQ7=0002110000001
STA7=000005

任何帮助将不胜感激。

编辑: 我试着更具体。 文件包含很多代码部分总是以TYx开头(x是自动编号)

我有搜索的SEQ号,在前0002120000001 preg_replace(“/ \ b($ Seq)\ b / i”,'\ 1找到0002110000001并高亮它们。

我需要的是高亮显示TY7和TY8之间的内容,而不仅仅是0002110000001。

由于我的英语不好,希望这很清楚

感谢

1 个答案:

答案 0 :(得分:0)

您可以在PHP中使用 stripos() explode()

<?php
$file='
IAR6=1002
SHF6=1
REF6=0002
TY7=2
DATE7=20130820182357
STAT_N7=1002
SEQ7=0002110000001
STA7=000005
TY8=2
DATE8=20130820182429
STAT_N8=1002
SH8=1
OP8=S123
SEQ8=0002120000081
';
//$Seq = "0002110000001";
$Seq = "7";
$new_arr=explode(PHP_EOL,$file);
foreach($new_arr as $k=>$v)
{
if(stripos($v,$Seq)!==false)
{
echo "$v\n";
}
}

输出:

TY7=2
DATE7=20130820182357
STAT_N7=1002
SEQ7=0002110000001
STA7=000005