[請益] 關鍵字上紅色的作法有錯誤,請問該怎麼改
我在做查詢功能,以空格分隔多個關鍵字,顯示出來將關鍵字上紅色
假設輸入:
衣服 褲子 鞋子 (沒有問題)
但是輸入:
衣服 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為要查詢的字串
請問該怎麼改呢?? 謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.58.172.120
→
12/17 23:24, , 1F
12/17 23:24, 1F
這個的正規表示有點難寫
我寫出最接近的是這樣,但好像還是差挺遠的:(
array_push($patterns,"/(?!.*[(<span)])(".$value.")/");
且$p_name遇到s、p、a、n會解析不正確
※ 編輯: PTTLSboy 來自: 61.58.172.120 (12/18 22:56)
※ 編輯: PTTLSboy 來自: 61.58.172.120 (12/18 22:57)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章