我有一个搜索功能,编码如下,我想知道是否可以保持原始格式。例如,如果我有以下文本,“你好,我是PHP的新手”,在我的搜索框中我输入小写的“php”,在结果中它会将原来的大写'PHP'更改为小写'php'。是否可以将字符串保留为PHP的原始状态,无论用户是否搜索PhP或pHp等。
这是包含'str_ireplace'...
的函数function boldText($text, $kword) {
return preg_replace('/($kword)/i', "<strong><font color='Red'>$kword</font></strong>", $text);
以及这里被称为......
echo "<td width = 130px><b>".boldText($info['company_name'], $kword) . "</b></td> ";
echo "<td width = 60px>".boldText($info['section_name'], $kword) . " </td>";
echo "<td width = 300px>".boldText($info['question'], $kword) . " </td>";
echo "<td width = 600px>".boldText($info['answer'], $kword) . " </td></tr>";
由于
答案 0 :(得分:3)
使用regular expressions。修饰符i
代表案例不敏感
echo preg_replace('/(php)/i', "<strong><font color='Red'>$1</font></strong>", 'I am new to pHp')
// returns "I am new to <strong><font color='Red'>pHp</font></strong>"
在你的功能背景下:
function boldText($text, $kword) {
return preg_replace('/('.$kword.')/i', "<strong><font color='Red'>$1</font></strong>", $text);
}
单引号字符串不解析内部的变量!
因此,您需要'/('.$kword.')/i'
或"/($kword)/i"
。
里面的dobule引用了字符串变量被解析,但总是意识到奇怪的副作用,有奇怪的组合。
答案 1 :(得分:2)
$s = 'test Test teSTing ...';
echo preg_replace('~(test)~i', '<b>$1</b>', $s);
测试测试teST ing ...