删除解析模板后留下的空行

问题描述 投票:0回答:1

我正在用 PHP 开发自己的简单模板引擎/解析器,目前我几乎完成了条件块的实现(

<% if %>content<% endif %>
)。但我有一个问题不知道如何解决。解析模板后,条件块所在的位置留下了空的新行。

假设我有这个模板:

Hello
<% if true %>
Amazing
<% endif %>
World!

解析后会产生以下结果:

Hello

Amazing

World!

但我想以一种完全删除条件块(包括新行)的方式解析它,就好像它们从未存在过一样,如下所示:

Hello
Amazing
World!

同样,如果条件不为真,我们就剩下这个:

Hello

World!

但又应该是这样的:

Hello
World!

如何以这样的方式解析模板,使其不留下这些空行?我想过在解析模板后手动删除它们,但我无法知道新行是否是由块留下的或者是否是故意的。删除每一侧都有一个额外字符的块也是行不通的,因为如果条件是单行怎么办?

任何帮助将不胜感激!

php
1个回答
0
投票

好吧,我很笨...这就像在我的匹配正则表达式末尾添加

\n?
一样简单,用于开始和结束标签...

© www.soinside.com 2019 - 2024. All rights reserved.