我的网站上有一个搜索功能,可以浏览论坛上的帖子。使用 MySQL SELECT 语句执行搜索。
SELECT *
FROM my_table
WHERE post_text LIKE '%$search_string%';
匹配后,我会返回找到的帖子并突出显示原始帖子中的术语。
function highlight_finds($search_text, $search_for){
$replacement_string = "<mark>".$search_for."</mark>";
$replaced_text = str_ireplace($search_for, $replacement_string, $search_text);
return $replaced_text;
}
echo highlight_finds(stripslashes($post_text), $search_string);
换行符用数据库表中的“br”来解释。
line 1 <br /> <br /> line 2 <br /> <br /> line 3
当我使用搜索词“br”在上面运行我的 highlight_finds 函数时,将返回以下 HTML
line 1 <<mark>br</mark> /><<mark>br</mark> />line 2
<<mark>br</mark> /><<mark>br</mark> />line 3
标记标签放置在 br 标签周围,任何带有换行符的帖子都会在结果中返回并与 br 标签一起显示。
在搜索术语“br”、“b”或“r”时,防止返回换行符的最佳方法是什么?