繁体   English   中英

突出显示搜索结果的一部分

[英]Highlight parts of search results

我正在使用以下代码突出显示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编号,在0002110000001中,preg_replace(“ / \\ b($ Seq)\\ b / i”,'\\ 1找到0002110000001并将其高亮显示。

我需要的是TY7和TY8之间的高光,而不是只有0002110000001。

希望我的英语不好,这已经足够清楚了

谢谢

您可以在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM