作者gpmm (银色)
看板PHP
标题Re: [请益] 关键字上红色的作法有错误,请问该怎麽改
时间Wed Dec 19 00:01:06 2012
※ 引述《PTTLSboy (阿铯)》之铭言:
: 我在做查询功能,以空格分隔多个关键字,显示出来将关键字上红色
: 假设输入:
: 衣服 裤子 鞋子 (没有问题)
: 但是输入:
: 衣服 e r
: 会出现问题,它会将第一次替换完毕的<span style='color:red'>衣服</span>,中的e、r,
: 再次替换造成错误
: 像这样<span styl<span style='color:red'>e</span>='color:r<span
: style='color:red'>e</span>d'>衣服</span>
: 程式码如下:
: //$search_array为输入的关键字阵列
: $patterns = array();
: foreach ((array)$search_array as $value){
: array_push($patterns,"/".$value."/");
: }
: $replacements = array();
: foreach ((array)$search_array as $value){
: array_push($replacements,"<span style='color:red;'>".$value."</span>");
: }
: $p_name=preg_replace($patterns, $replacements, $p_name);
: //$p_name为要查询的字串
: 请问该怎麽改呢?? 谢谢!!
$patterns = '/(' . implode ('|', $search_array) . ')/i';
$res = preg_replace (
$patterns,
"<span style='color:red;'>\1</span>",
$p_name);
不确定是不是你要的结果,
另外,如果要用 regular expression,请小心外部进来的字元。 :Q
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.161.198.202
1F:推 PTTLSboy:谢谢拉!是我要的结果~ \1要再补上一个斜线(\)才可以跑QQ 12/19 02:31
2F:→ gpmm:喔对,忘记是 " 要跳脱 XD 12/19 02:38