template proc: fix variables regexp

This commit is contained in:
Fabio Comuni 2012-03-03 00:00:38 +01:00
parent aef737f376
commit 685686b3e8

View File

@ -160,7 +160,16 @@
private function var_replace($s){ private function var_replace($s){
$m = array(); $m = array();
if (preg_match_all('/\$\[{0,1}([a-zA-Z0-9-_]+\.*)+\]{0,1}/', $s,$m)){ /** regexp:
* \$ literal $
* (\[)? optional open square bracket
* ([a-zA-Z0-9-_]+\.?)+ var name, followed by optional
* dot, repeated at least 1 time
* (?(1)\]) if there was opened square bracket
* (subgrup 1), match close bracket
*/
if (preg_match_all('/\$(\[)?([a-zA-Z0-9-_]+\.?)+(?(1)\])/', $s,$m)){
foreach($m[0] as $var){ foreach($m[0] as $var){
$varn = str_replace(array("[","]"), array("",""), $var); $varn = str_replace(array("[","]"), array("",""), $var);
$val = $this->_get_var($varn, true); $val = $this->_get_var($varn, true);