php细分包含变量标签的字符串

时间:2012-02-22 11:46:32

标签: php string variables tags split

美好的一天,

我有一个无法更改的预设情况,它围绕一部分html文本(页面正文),以及本机构内部的一些用户可配置标签。

这个非常类似于模板但与不可重构的源情况有关的问题是,我需要将原始主体拆分为

html part 1
tag1
html part 2
tag2
html part 3
tag3

等等,例如来自

<body>
<b>This is my first line</b> And this is <b>%%tag one%%</b> but of course it
doesn't end here %%second tag%%
Additionally %%second tag%% tags can be repeated inside the body.

In fact, %%tag one%% or even %%tagthree%%
</body>

理想情况下,我应该获得一个数组:

[0] = "<body>
    <b>This is my first line</b> And this is <b>"
[1] = "%%tag one%%"
[2] = "</b> but of course it
    doesn't end here "
[3] = "%%second tag%%"
[4] = "Additionally "
[5] = "%%second tag%%"
[6] = " tags can be repeated inside the body.

    In fact, "
[7] = "%%tag one%%"
[8] = " or even "
[9] = "%%tagthree%%"
[10] = "
    </body>"

标签是%%包含的简单文本标签(允许空格,_和 - ),例如%%first tag%%

我意识到有很多不同的解决方案,但由于我需要尽可能高的性能,我需要指导什么尝试以及要避免什么。另外,我想知道php是否已经为这种情况提供了一些功能。

希望你们中的一些人已经面对过这样的事情,理想的解决方案对于我目前的解析技巧来说有点太多了。

由于

1 个答案:

答案 0 :(得分:1)

愚蠢的方式:

$parts = explode("%%", $str);
for($i=1;$i<count($parts);$i+=2) {
    $parts[$i] = "%%".$parts[$i]."%%"
}