我有一个表单,用户可以在其中输入关键字或一组关键字。
让我说他输入了“美丽的花朵”。
数据库返回一些结果:
1.花儿很漂亮
红玫瑰和雏菊是美丽的花朵。
PHP:
$keyword = $_POST['keyword'];
// splits keywords.
$ExplodeKeywords = explode(" ", $keyword);
// assign keyword(s) to be bolded.
$tpl->assign('ExplodeKeywords', $ExplodeKeywords);
模板文件:
{$row.Text|replace:"`$ExplodeKeywords[0]`":"<b>`$ExplodeKeywords[0]`</b>"}
然而,只有在搜索中键入的确切单词才会加粗:
1.Flowers 漂亮。 2.红玫瑰和雏菊美丽 花。
但是我希望它能够粗体化任何输入的单词(无论如何)。
1. 鲜花 漂亮 2.红玫瑰和雏菊美丽 花。
我很困惑我必须做些什么来完成这项工作,如果我应该从PHP或模板文件中编程它。
答案 0 :(得分:0)
在php中更容易做到:
$text_formated = preg_replace('/(' . implode('|',$ExplodeKeywords) . ')/gi', '<b>$1</b>', $text_orig);