[請益] 關鍵字上紅色的作法有錯誤,請問該怎麼改

看板PHP作者 (阿銫)時間13年前 (2012/12/17 21:22), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/2 (看更多)
我在做查詢功能,以空格分隔多個關鍵字,顯示出來將關鍵字上紅色 假設輸入: 衣服 褲子 鞋子 (沒有問題) 但是輸入: 衣服 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
改 pattern,<tag> 內部 attr 不處理
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)
文章代碼(AID): #1GpnohGX (PHP)
文章代碼(AID): #1GpnohGX (PHP)