php - 即时关键字突出显示

标签 php html css

我有一个 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/

相关文章:

php - Laravel (eloquent) 访问器 : Calculate only once

php - 大表中的 SQL 随机行(带 where 子句)

php header excel 和 utf-8

php - 通过隐藏表单选择和显示mysql数据

html - 我无法设置表格列的宽度

html - css flex 问题,与其他没有区别的特定 div 将不接受类

html - 基线和顶部之间的表格单元格垂直对齐差异

php - 调试 CakePHP 保存

html - Flex 元素内部边框有间隙

html - 如何在 Angular svg map 上选择区域?