[++tpl++] asfadsasdasdasdsdsad [++/tpl++]
preg_match_all('~\[\+\+(.*?)\+\+\]~', $templates['tplArch'], $matches);preg_match_all('/\[\+\+(.*?)\+\+\](.*?)\[\+\+(.*?)\+\+\]/is', $templates['tplArch'], $matches);
$templates['tplArch'] ="
<h3>Archives</h3>
<div id=\"ditto_archivelist\">
<ul id=\"ditto_archive_ul\">
[++year++]
<li><span class=\"ditto_year\">[+year+]
[++month++]
<li><span class=\"ditto_month\">[+month+]
<ul>
[++item++]<li><a href=\"[~[+id+]~]\">[+title+]</a> (<span class=\"ditto_date\">[+date+]</span>)</li>[++/item++]
</ul>
</li>
[++/month++]
</li>
[++/year++]
</ul>
[++/year++]
</div>";
function parseArchiveTPL($templates){
preg_match_all('/\[\+\+(.*?)\+\+\](.*?)\[\+\+(.*?)\+\+\]/i', $templates['tplArch'], $matches);
return $matches;
}
$ktext = print_r(parseArchiveTPL($templates),1);
return "<pre>$ktext</pre>";

Array
(
[0] => Array
(
[0] =>
<li><span class="ditto_year">
[1] => <li><a href="November-2005.html">November 2005</a> (<span class="ditto_date">23-Nov-05 12:29</span>)</li>
[2] =>
</li>
)
[1] => Array
(
[0] => year
[1] => item
[2] => /month
)
[2] => Array
(
[0] =>
<li><span class="ditto_year">
[1] => <li><a href="November-2005.html">November 2005</a> (<span class="ditto_date">23-Nov-05 12:29</span>)</li>
[2] =>
</li>
)
[3] => Array
(
[0] => month
[1] => /item
[2] => /year
)
)
$templates['tplArch'] ="
<h3>Archives</h3>
<div id=\"ditto_archivelist\">
<ul id=\"ditto_archive_ul\">
[++year++]
<li><span class=\"ditto_year\">[+year+]
[++month++]
<li><span class=\"ditto_month\">[+month+]
<ul>
[++item++]<li><a href=\"[~[+id+]~]\">[+title+]</a> (<span class=\"ditto_date\">[+date+]</span>)</li>[++/item++]
</ul>
</li>
[++/month++]
</li>
[++/year++]
</ul>
</div>";
function parseArchiveTPL($templates){
preg_match_all('/\[\+\+(.*?)\+\+\]/is', $templates['tplArch'], $matches);
return $matches;
}
$placeHolders = parseArchiveTPL($templates);
$numPlaceHolders = count($placeHolders[1]) / 2 - 1;
$extractedTemplates = array();
for ($i = $numPlaceHolders; $i >= 0; $i--) {
$regExp = '/\[\+\+' . $placeHolders[1][$i] . '\+\+\](.*?)\[\+\+\/' . $placeHolders[1][$i] . '\+\+\]/is';
preg_match_all($regExp, $templates['tplArch'], $matches);
$extractedTempaltes[$placeHolders[1][$i]] = $matches[1];
}
$ktext .= print_r($extractedTempaltes,1);
return "<pre>$ktext</pre>";