2017-09-22 3 views
0

왜 그런지 묻지 말고 해석 된 외부 소스의 문자열을 가지고 있으며 가능한 모든 나뭇 가지 태그를 제거하거나 분리하려고합니다 (외부 사용자가 나뭇 가지를 사용할 수 없어야 함).나뭇 가지 : PHP에서 외부 문자열에서 나뭇 가지 태그를 제거하는 방법?

예 :

<h1>{{ pageTitle }}</h1> 

<div class="row"> 
    {% for product in products %} 
    <span class="mep"></span> 
    {% endfor %} 
</div> 

원하는 결과 :

<h1></h1> 

<div class="row"> 
<span class="mep"></span> 
</div> 

이를 달성하는 가장 좋은 방법은 무엇입니까?

+0

정규식을 사용 하시겠습니까? 나뭇 가지 사이의 내용을 제거 하시겠습니까? 아니면 태그 만 제거 하시겠습니까? –

+0

@ Alex.Barylski 그렇지만 더 좋거나 더 쉬운 방법이있을 수 있습니까? – Blackbam

+0

Twig 파서 자체 또는 다음과 같은 프로젝트를 사용할 수 있습니다. https : //github.com/eexit/twig-context-parser ??? –

답변

0

내 정규식 솔루션 (더 나은 솔루션이 여전히 환영) : (here 설명 된대로)

$input = '<h1>{{ pageTitle }}</h1> 

<div class="row"> 
    {% for product in products %} 
    <span class="mep"></span> 
    {% endfor %} 
</div>'; 

$search = '/({{.+}})|({%.+%})/si'; 

$replace = ''; 

echo preg_replace($input, $search, $replace); 
1

당신은 {{ '{{' }}, {{ '}}' }}, {{ '{%' }}{{ '%}' }}를 사용하여 나뭇 가지 태그를 탈출 할 수 있습니다.

$input = '<h1>{{ pageTitle }}</h1> 

<div class="row"> 
    {% for product in products %} 
    <span class="mep"></span> 
    {% endfor %} 
</div>'; 

$search = "/({{|}}|{%|%})/"; 

$replace = "{{ '$1' }}"; 

echo preg_replace($search, $replace, $input); 
+0

Thx도 유용합니다. – Blackbam

관련 문제