突出显示搜索结果中的关键字

时间:2012-01-23 08:45:46

标签: php mysql replace

如何在搜索结果中突出显示关键字?

以下是我的代码示例:

<?php
$mysql = new mysqli($host,$username,$password,$database);

$keyword = 'racing';
$query = $mysql->query("SELECT * FROM products WHERE title LIKE '%$keyword%' OR description LIKE '%$keyword%'");

while($result = $query->fetch_object())
{
    echo '<p>';
    echo $result->title.'<br />';
    echo substr($result->description,'0','256');
    echo '</p>';
}
?>

在此代码中,关键字为racing,因此我希望搜索结果中的所有racing都会突出显示。

1 个答案:

答案 0 :(得分:5)

只需将您的关键字替换为包含关键字的样式<span>

$result->title = preg_replace("/($keyword)/i",'<span class="highlight">$1</span>', $result->title);

使用$keyword = "racing"和文字“你知道赛车吗?真棒。”,$result->title将是

  

You know <span class="highlight">racing</span>? It's awesome.

然后,您只需使用CSS设置高亮类,例如

.highlight { background-color: #ffa; }  

.....