- preg_match_all: documentation ( source)
- str_replace: documentation ( source)
- sprintf: documentation ( source)
<?php
$tst = '!!!!';
$a = '@@@';
$template = '{{$tst}}test{{$a}}';
if (preg_match_all("/{{\$(.*?)}}/", $template, $m)) {
foreach ($m[1] as $i => $varname) {
echo strval($varname).PHP_EOL.$m[0][$i].'===='.sprintf('$%s', $varname).PHP_EOL;
$template = str_replace($m[0][$i], $varname, $template);
}
}
$x = '###'.strval($a).PHP_EOL;
echo $x;
echo $template;