2012-02-22 146 views
0

良好的一天,所有的PHP細分串,包含變量標籤

我有一個無法改變預設的情況,即圍繞HTML文本(一頁面的主體)的部分的周圍,還有一些用戶可配置這個身體內部的標籤。

的問題,這是非常類似模板但是這涉及到非refactorable源的情況下,是我需要到原來的身體分成

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

啞方式:

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

哈,這是聰明的,謝謝。讓我看看。 – roamcel 2012-02-22 12:02:56