$v ) { if (is_array($v)) $this->_build_replace($v, "$prefix$k."); $this->search[] = $prefix . $k; $this->replace[] = $v; } } } private function _replcb_if($m){ //echo "
"; var_dump($m); $keys = explode(".",$m[1]); $val = $this->r; foreach($keys as $k) { $val = $val[$k]; } //echo $val; return ($val?$m[2]:""); } public function replace($s, $r) { $this->s = $s; $this->r = $r; $this->search = array(); $this->replace = array(); $this->_build_replace($r, ""); $s = preg_replace_callback("|{{ *if *([^ }]*) *}}([^{]*){{ *endif *}}|", array($this, "_replcb_if"), $s); return str_replace($this->search,$this->replace,$s); } } $t = new Template;