我有一个 PHP 搜索脚本,我想突出显示用户使用标签搜索的关键字。我该怎么做?
我的代码是:
if(!empty($_GET['q'])){
$keywords=explode(' ',$_GET['q']);
foreach($keywords as $query){
$query=mysql_real_escape_string($query);
$likes[]="keywords LIKE '%{$query}%'";
}
$searchResult=mysql_query("select * from questions where ".implode('or ',$likes)."limit 1");
while($row=mysql_fetch_assoc($searchResult)){
$results="<div class='webresult'>{$row['result']}</div>";
}
}
最佳答案
如果$row['result']
不包含html,你可以做一个字符串替换:将结果中的所有关键字替换为<span class="highlight">keyword</span>
一个简单的例子:
...
while($row=mysql_fetch_assoc($searchResult)) {
$res = $row['result'];
foreach($keywords as $kw) {
$res = str_replace($kw, '<span class="highlight">' . htmlspecialchars($kw) . '</span>', $res);
}
$results="<div class='webresult'>{$res}</div>";
}
...
关于php - 即时关键字突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863332/