0

我有一个表单,用户可以在其中输入一个关键字或一组关键字。

假设他输入“美丽的花朵”。

数据库返回一些结果:
1.鲜花很漂亮。
2.红玫瑰和雏菊是美丽的花朵。

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.花很漂亮。2.红玫瑰和雏菊是美丽的 花朵

但我希望它加粗输入的任何单词,无论大小写(像这样)。

1.漂亮
2.红玫瑰和雏菊是美丽的 花朵

我很困惑我必须做什么才能完成这项工作,以及是否应该从 PHP 或模板文件对其进行编程。

4

1 回答 1

0

在php中更容易做到:

$text_formated = preg_replace('/(' . implode('|',$ExplodeKeywords) . ')/gi', '<b>$1</b>', $text_orig);
于 2013-10-12T10:54:20.230 回答