搜索关键词正则获取关键词所在行的字符串

原文:

<p>
4267339----无证|06级----892元<br>
4804514----有证|18级----892元<br>
4219956----有证|10级----892元<br>
4121670----有证|20级----892元<br>
4217831----无证|7级|只有3问手机未设----892元<br>
4283690----无证|7级|只有3问手机未设----892元<br>
4469273----无证|7级|只有3问手机未设----892元<br>
4529038----无证|7级|只有3问手机未设----892元<br>
4583549----无证|7级|只有3问手机未设----892元<br>
</p>

输入“90“,显示如下:

4283690----无证|7级|只有3问手机未设----892元<br>
4529038----无证|7级|只有3问手机未设----892元<br>

我们用$val获取关键词(90)。

代码如下

if (!empty($val)) { 
        $reg = "/^((?!".$val.").)*$/is"; 
        $qc = '<b style=\'color:red\'>' . $val . '</b>';
        $introa=$row['goods_desc'];
        $introb = explode('<br />',$introa);
        $introc = '';
        $key=0;
        foreach($introb as $introd){
            if(strpos($introd,$val) && $key<50){
                $introc .= str_replace($val,'<b style="color:red;">'.$val.'</b>',$introd).'<br>';
                $key++;
            }elseif(strpos($introd,$val) && $key==50){
                $introc .= '......';
                $key++;
            }
        }
		$arr[$row['goods_id']]['goods_desc']  = $introc;
}

其中:

$introa=$row['goods_desc'];

是获取文章的内容。

$arr[$row['goods_id']]['goods_desc']  = $introc;

是输出显示内容。

数字50代码的是只获取50条。