2013-12-08 63 views
0

我正在使用下面的代碼突出顯示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

突出這一部分TXT的僅在數爲7

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

任何幫助將不勝感激。編輯: 我試圖更具體。 文件包含大量的代碼部分總是由TYX啓動(x爲自動編號)

我有我的搜索序列號,在離0002110000001 preg_replace函數( 「/ \ B($ SEQ)\ B/I」 ,「\ 1找到0002110000001和higlight他們。

我需要的是higlight是什麼,而不是隻0002110000001.

希望這是很清楚的我的英文不好

感謝

由於TY7和TY8之間

回答

0

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

<?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"; 
} 
} 

OUTPUT:

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

感謝回答,但這種提取物的一部分,而不是higlight,如果我有typ71這不起作用。我們的目標是讓我們去看看錨點部分,而不是截斷(文件可以包含1500多個id) – user3079885

+0

'typ71'應該匹配什麼? –

+0

對不起,這不是TYP而是TY! 。我可能錯過了,文件例證只是文件的一小部分。它包含超過1500個以TYx(x =自動編號)開頭的代碼部分,所以TY1,TY2 ...我開始編輯我的文章以更具體。 – user3079885