当我的用户在我的网站上搜索内容时,我回复$title, $content
,如$keyword
实现的搜索功能正常工作,但由于我的数据库中的每个内容字段都包含相当多的文本段落,因此当页面上显示结果时,用户很难阅读。
我希望用户搜索输入的关键字,然后在显示的结果中,将关键字前后的文字切成一些字母并突出显示它?
我已经读过strpos和strstr应该这样做。所以我的问题是......
使用以下代码:
<?php
foreach ($searchcontent ->result() as $row)
{
echo $title
echo $content
}
?>
如何突出显示关键字并在找到的第一个关键字的每一边显示多个字符?
答案 0 :(得分:2)
您可以这样做:
在PHP脚本中
$keyword = THESEARCHEDKEYWORD;
$pattern = "/([^a-z])$keyword([^a-z])/i";
$highlight = '<span class="highlight">' . $keyword . '</span>';
foreach ($searchcontent->result() as $row)
{
$title = preg_replace($pattern, "$1$highlight$2", $title);
$content = preg_replace($pattern, "$1$highlight$2", $content);
echo $title;
echo $content;
}
然后在CSS 中添加此规则:
.highlight
{
font-weight: bold;
background-color: yellow;
}