我正在用 PHP 开发自己的简单模板引擎/解析器,目前我几乎完成了条件块的实现(
<% if %>content<% endif %>
)。但我有一个问题不知道如何解决。解析模板后,条件块所在的位置留下了空的新行。
假设我有这个模板:
Hello
<% if true %>
Amazing
<% endif %>
World!
解析后会产生以下结果:
Hello
Amazing
World!
但我想以一种完全删除条件块(包括新行)的方式解析它,就好像它们从未存在过一样,如下所示:
Hello
Amazing
World!
同样,如果条件不为真,我们就剩下这个:
Hello
World!
但又应该是这样的:
Hello
World!
如何以这样的方式解析模板,使其不留下这些空行?我想过在解析模板后手动删除它们,但我无法知道新行是否是由块留下的或者是否是故意的。删除每一侧都有一个额外字符的块也是行不通的,因为如果条件是单行怎么办?
任何帮助将不胜感激!
好吧,我很笨...这就像在我的匹配正则表达式末尾添加
\n?
一样简单,用于开始和结束标签...