$old = preg_replace('/{([^}]+)}/e', "isset(\$tpl_array['\\1']) ? \$tpl_array['\$1']: stripslashes('{\$1}');",$template);
$new = preg_replace_callback("/{([^}]+)}/", function($m) use($tpl_array) {return isset($tpl_array[$m[1]]) ? $tpl_array[$m[1]] : $m[1];},$template);
stripslashes je bio potreban jer /e ima auto addslashes.
\ je trebao ispred $ zbog "" stringa.
use() je za externu varijablu.
Ali sta znaci $1 u $tpl_array['\$1'] ???
Ja sam ga zamenio sa $m[1] i to kao radi. Tj sve radi al se pojavljuju neki cudni viskovi na sajtu. Pa ne znam da li sam se ovde zeznuo ili engine sad lepo radi a greska je negde u templejtu ili na desetom mestu.