2014-11-29 3 views
0

하나의 키 값을 제외한 모든 값을 바꾸려고합니다. 내가 preg_replace를 사용하여이 코드가 있어요 :하나만 제외하고 모든 값 바꾸기

$posts = json_decode($post_list, true); 
     foreach($posts as &$elm){ 
      $elm = array_map(function($i) use($s){ 
       return preg_replace("/(" . preg_quote($s) . ")/is", "<span style='background: #92CF18;'>$1</span>", $i); 
      }, $elm); 
     } 

내 게시물의 VAR은 다음과 같습니다 pastebin 나는 "총알"의 값을 변경하지 마십시오 할을 내가 어떻게 할 수있는 키?

+0

'$ s '의 값은 무엇입니까? 사용중인 실제 정규 표현식을 표시하십시오. – Bogdan

+0

$ s는 사용자의 입력입니다. 내 검색 결과 sys입니다. 당신이 찾고있는 컬러 텍스트. 그것은 내가 이미 가진 모든 것입니다. 나는이 문제에 붙어있다. – Zolax

답변

0

마크 업으로 json 데이터 객체를 수정하지 않는 것이 좋습니다. 데이터는 마크 업과는 다른 관심사입니다.

마크 업은 렌더링 된 출력에 있어야하므로 결과 마크 업에서 단계는 jQuery/javascript 여야합니다.

자바 스크립트에서 '슬러그'를 확인하고 조기에 복귀해야합니다. 그 후, 대체는 아마도 사소한 것이거나 적어도 이전의 대답보다 쉽습니다.

정확하게 이해하면 슬러그 키를 제외한 배열의 레코드 당 사전에 모든 키를 갖고 싶습니다. 제발이 완전히 당신의 요구를 satify하지 않는 경우 http://regex101.com/r/bU9bL4/1

:

나는 부정적 예측을 사용하여, 그것으로 조금 twiddled,이 솔루션에 온 :

(\{|,)\"(?!slug).*?\" 

당신은 그것을 확인하실 수 있습니다 몇 가지 예를 포함하여 원하는 수정 내용에 대한 더 자세한 설명을 제공하십시오.

+0

$ s와 같음 키를 모두 바꾸려고합니다. $ s는 검색 양식의 사용자 입력입니다. 당신의 진술을 어떻게 바꿔야합니까? – Zolax

관련 문제