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

替换.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 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?