Php 忽略大小写smarty替换粗体?

Php 忽略大小写smarty替换粗体?,php,replace,smarty,explode,bold,Php,Replace,Smarty,Explode,Bold,我有一个表单,用户在其中输入一个关键字或一组关键字 假设他输入“美丽的花朵” 数据库返回一些结果: 1.花是美丽的。 红玫瑰和雏菊是美丽的花 PHP: 模板文件: {$row.Text|replace:"`$ExplodeKeywords[0]`":"<b>`$ExplodeKeywords[0]`</b>"} {$row.Text |替换:`$ExplodeKeywords[0]`:`$ExplodeKeywords[0]`} 但是,它只是将搜索中键入的确切单词加粗

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

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

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

PHP:

模板文件:

{$row.Text|replace:"`$ExplodeKeywords[0]`":"<b>`$ExplodeKeywords[0]`</b>"}
{$row.Text |替换:`$ExplodeKeywords[0]`:`$ExplodeKeywords[0]`}
但是,它只是将搜索中键入的确切单词加粗,如下所示:

花是美丽的。 红玫瑰和雏菊是美丽的花

但是我想让它加粗输入的任何单词,不管大小写(像这样)

1.花是美丽的。
红玫瑰和雏菊是美丽的花


我不知道我必须做些什么才能使这项工作正常进行,以及是否应该从PHP或模板文件对其进行编程。

在PHP中更容易做到:

$text_formated = preg_replace('/(' . implode('|',$ExplodeKeywords) . ')/gi', '<b>$1</b>', $text_orig);
$text_formatted=preg_replace('/('.intlode(''|',$ExplodeKeywords)。'/gi','$1',$text_orig);

我不明白这是如何解决“区分大小写”问题的。这只会突出显示用户搜索的单词。如果用户键入“和”。它不会突出显示“和”,只会突出显示小写的“和”。你是对的。一开始我错过了那部分。我修改了答案。i preg_replace修饰符应该有帮助。如果我的数据来自MYSQL数据库,我将如何使用它?使用来自MYSQL的数据设置变量,并在变量准备就绪时调用此函数。
$text_formated = preg_replace('/(' . implode('|',$ExplodeKeywords) . ')/gi', '<b>$1</b>', $text_orig);