{$user['name']} => {$user.name} => */ '/\$(\w+)\.(\w+)\.(\w+)\.(\w+)/is' => "\$\\1['\\2']['\\3']['\\4']", '/\$(\w+)\.(\w+)\.(\w+)/is' => "\$\\1['\\2']['\\3']", '/\$(\w+)\.(\w+)/is' => "\$\\1['\\2']", '/{(\\$[a-zA-Z_]\w*(?:\[[\w\.\"\'\[\]\$]+\])*)}/i' => "", /**constance label {CONSTANCE} => */ '/\{([A-Z_\x7f-\xff][A-Z0-9_\x7f-\xff]*)\}/s' => "", /**include label {include file="test"} */ '/{include\s*file=\"(.*)\"}/i' => "display(\$this->getTpl(\"$1\")); ?>", /**if label {if $name==1} => {elseif $name==2} => {else} => {/if} => */ '/\{if\s+(.+?)\}/' => "", '/\{else\}/' => "", '/\{elseif\s+(.+?)\}/' => "", '/\{\/if\}/' => "", /**for label {for $i=0;$i<10;$i++} => {/for} => */ '/\{for\s+(.+?)\}/' => "", '/\{\/for\}/' => "", /**foreach label {foreach $arr as $vo} => {foreach $arr as $key => $vo} => $vo){ ?> {/foreach} => */ '/\{foreach\s+(\S+)\s+as\s+(\S+)\}/' => "", '/\{foreach\s+(\S+)\s+as\s+(\S+)\s*=>\s*(\S+)\}/' => " \\3) { ?>", '/\{\/foreach\}/' => "", /**function label {date('Y-m-d H:i:s')} => {$date('Y-m-d H:i:s')} => */ '/\{([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff:]*\(([^{}]*)\))\}/' => "", '/\{(\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff:]*\(([^{}]*)\))\}/' => "", ); foreach ($label as $key => $value) { $template = preg_replace($key, $value, $template); } return $template; } }