如何将{@if condtwo}
的内容转换为匹配的{!if}
?获取匹配模板标签之间的内容
{@if condtwo}
{@if condone}
show this if condone is true
{!if}
other contents
{!if} <- matching {!if}
我试过使用preg_match_all
。这里是我的正则表达式:
/([\s]*?{@IF(.*?)}[\s]*?)(.+?)([\s]*?{!$IF}[\s]*?)/si
的问题是,它只是变得均来自{@if condtwo}
内容下一{!if}
:
{@if condtwo}
{@if condone}
this is a table
{!if}
请不要试图解析那些使用正则表达式。虽然PHP支持递归匹配(至少,我认为它) - 你真的不应该这样做。这很混乱。 – Ryan