如何更改
{for ...cond.... }
somethinginbetween
{/for}
到
<?php for (...cond...){ ?>
somethinginbetween
<?php } ?>
答案 0 :(得分:1)
这是一个快速而又脏的字符串文字字符串替换:
$code = str_replace('{for ', '<?php for (', $code);
$code = str_replace(' }', '){ ?>', $code);
$code = str_replace('{/for}', '<?php } ?>', $code);
如果somethhingbetween
包含if(){ }
,则无效,因为}
会被){ ?>
取代。但对于只有{for condition }
和{/for}
的其他情况,就足够了。
正则表达式方法结合简单的字符串替换,假设for循环中没有出现}
(匹配除}
以外的所有内容:[^}]+
)
$code = preg_replace('/{for ([^}]+)}/', '<?php for ($1) { ?>', $code);
$code = str_replace('{/for}', '<?php } ?>', $code);
此功能不进行任何验证,您有责任使用正确打开/关闭{for}
和{/for}
来提供该功能。
如果您需要执行PHP,请插入PHP。另一种方法是编写自己的解析代码。您可以查看Smarty等模板项目。