public static function escapeVariable($raw, $escaping) { // TODO: add support for objects if (is_array($raw)) { foreach ($raw as $key => $var) { $raw[$key] = self::escapeVariable($var, $escaping); } } else { switch ($escaping) { case 'html': $raw = htmlspecialchars($raw); break; case 'json': default: break; } } return $raw; } public static function renderTemplate() { if (func_num_args() > 1 && is_array(func_get_arg(1))) { self::$raw = func_get_arg(1); self::$escapingTmp = func_get_arg(2); if (func_get_arg(2) !== null) { extract(self::escapeVariable(self::$raw, self::$escapingTmp)); } else { extract(self::escapeVariable(self::$raw, self::$escaping)); } } ob_start(); include func_get_arg(0); $content = ob_get_contents(); ob_end_clean(); return $content; }