A mówisz że jest warto pisać własny parser, może podpatrz jak to jest zrobione w innych np. w SMARTY.
Tak na szybkiego to może taki kod, ale on z pewnością nie jest optymalny, więc fajnie jak się ktoś jeszcze wypowie i doradzi jak to można optymalnie napisać...
<?php
$template = str_replace("{title}", "Tytul", $template);
ereg("{news}(.*){/news}", $template, $regs);
for($i=1; $i<=10; $i++)
{
$news_arr[$i] = str_replace("{news_title}", "Tytul $i newsa", $regs[1
]); $news_arr[$i] = str_replace("{news_content}", "Tresc $i newsa", $news_arr[$i]); }
$news_section = join("<br>",$news_arr);
$template = ereg_replace("({news}.*{/news})", $news_section, $template);
?>