preg_replace_callback返回'Array'

时间:2015-03-04 21:36:06

标签: php templates preg-replace-callback

它的模板:

Class View {

    public static function ShowStaticPage($way) {
        global $cfg;

        ob_start(); 

        include self::Get($way);

        return ob_get_clean();  
    }

    public static function getURL() {
        global $cfg;

        return empty($cfg['theme']) ? ROOT.'templates/Bootstrap/' : ROOT.'templates/'.$cfg['theme'].'/' ;
    }

    public static function getContent($file) {
        global $cfg;

        $theme_dir = self::getURL();
        $input = file_get_contents($theme_dir.$file.'.tpl');

        $regex_lng = "/\{(lng)\:((?:[0-9a-zA-Z\/]+))\}/";
        $regex_tpl = "/\{(tpl)\:((?:[0-9a-zA-Z\/]+))\}/";

        $input = preg_replace_callback($regex_lng, 'self::lng', $input);
        $input = preg_replace_callback($regex_tpl, 'self::getContent', $input);

        return $input;
    }

    public static function lng($caller) {
        global $cfg, $lng;

        return sprintf("%s",$lng[$param]);
    }

}

在输入文件中,我有{tpl:tplfold1 / sometplnamethere}和{lng:login},我需要在解析时替换它。但是当我试图将tpl加载到另一个时,它会给出tpl" Array.tpl"的名称。我做错了什么?我知道,preg_replace_callback给出了数组但是如何得到这个名字?或者只是使用' getContent'?

重复每个名称

0 个答案:

没有答案