不要问我为什么,但是我从外部源获取了解释的字符串,我想剥离或逃避所有可能的树枝标记(外部用户不应该被允许使用树枝)。
示例:
<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 :(得分:1)
您可以使用{{ '{{' }}
,{{ '}}' }}
,{{ '{%' }}
和{{ '%}' }}
来转义Twig标记(如here所述)。
$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);
答案 1 :(得分:0)
我的正则表达式解决方案(更好的解决方案仍然受欢迎):
$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);