我使用此代码
$text = '
[IF=is_login]
[IF=is_subscriber]subscriber[/IF]
[IF=is_partner]partner[/IF]
[/IF]';
$count = 0;
do
{
$content = preg_replace ("#\\[IF=(.+?)\\](.*?)\\[/IF\\]#ies", "the_if('\\1', '\\2', FALSE)", $text, -1, $count);
}
while ($count > 0);
即成为一个层次结构,但事实证明该函数返回了第一个[/ IF]的所有内容
有什么想法吗?
答案 0 :(得分:0)
有额外的转义斜线,您需要设置$text
,而不是$content
,以便在循环期间替换它
$text = preg_replace ("#\[IF=(.+?)\](.*?)\[/IF\]#ies", "the_if('$1', '$2', FALSE)", $text, -1, $count);