Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 突出显示部分搜索结果_Php - Fatal编程技术网

Php 突出显示部分搜索结果

Php 突出显示部分搜索结果,php,Php,我使用下面的代码突出显示文件中的一个单词,然后转到anchor $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

我使用下面的代码突出显示文件中的一个单词,然后转到anchor

$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);
任何帮助都将不胜感激

编辑: 我尽量说得更具体些。 文件包含大量代码部分,始终以TYx开头(x是自动编号)

我有用于搜索的序号,ex 0002110000001 preg_replace(“/\b($Seq)\b/i“,”\1找到0002110000001并将其高亮显示

我需要的是介于TY7和TY8之间的higlight,而不是仅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";
}
}

感谢您的回答,但这是提取部分而不是higlight,如果我有typ71,这是行不通的。目标是higlight并转到锚定部分而不是截断(文件可以包含超过1500个id)
typ71
应该匹配什么?很抱歉,这不是TYP,而是TY!。我可能说错了,file example只是文件的一小部分。它包含1500多个代码部分,以TYx开头(x=自动编号),所以TY1,TY2…我开始编辑我的文章,以便更具体一些。
<?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