dongnachuang6635 2013-11-04 15:44
浏览 81
已采纳

替换.tpl文件中的变量

Situation at this moment

I'm using this function:

public function fetch($file){        
    $file = $this->options['template_dir'].(string)$file;

    if(file_exists($file)){
        ob_start();
        if($this->options['extract']){
            extract($this->vars);
        }
        include $file;
        return ob_get_clean();
    }else{
        throw new Exception('De ('.$file.') template bestaat niet.');
    }        
}

Basically it just replaces <?php echo $name; ?> from the tpl with the data of $tpl->name.

The question

I would like to start using {$name} instead of using <?php echo $name; ?> in my TPL files. Can anyone point me in the right direction for replacing this with the data of $tpl->name?

What I've tried

I tried to do it with a regex, trying to find the { and } and then replace it, but it will only output $name as text.

  • 写回答

2条回答 默认 最新

  • duanfen2349 2013-11-04 16:40
    关注

    I would probably go with a regex, but here is an alternate. You could also foreach through $this->vars keys:

    $template = file_get_contents($file);
    $vars     = explode(',', '{$'.implode('},{$', array_keys($this->vars)).'}');
    $output   = str_replace($vars, $this->vars, $template);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作