【发布时间】:2011-06-06 22:58:15
【问题描述】:
我正在尝试创建带有关键字突出显示的搜索表单,但显然如果关键字没有出现在列表结果的前几句中,我将无法突出显示该关键字 - 所以我需要创建一个 sql 语句,它将填充找到的关键字左侧和右侧相同的字符数。
有人知道这样的 SQL 语句是什么吗?
好的——澄清一下——想象一下下面的 SQL 语句:
SELECT *
FROM `articles`
WHERE `content` LIKE '%keyword%'
现在 - 此语句将返回与 WHERE 子句匹配的结果列表。
我接下来要做的是使用以下方法 (PHP) 将结果集的所有关键字与 span 一起包装以突出显示关键字:
public static function highlight($string = null, $keyword = null, $class = 'highlight') {
return str_ireplace($keyword, "<span class=\"{$class}\">{$keyword}</span>", $string);
}
现在这可以正常工作了,但每个结果只显示每个结果的开头 X 个字符。
我想要实现的是先识别内容中的关键字,然后从这个关键字的左右抓取一些内容,这样关键字总是出现在每个结果中。
我希望这是有道理的。
【问题讨论】:
-
到目前为止你有什么?