博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模仿smarty迷你类代码
阅读量:4879 次
发布时间:2019-06-11

本文共 825 字,大约阅读时间需要 2 分钟。

作业代码:

<?php

    class mini {
        public $template_dir="./view/";//模版目录
        public $compile_dir="./comp/";//编译目录
        public $_tpl_vars = array();//用来获取外界的变量
        //编译方法
       public function comp($temp) {
            $cont = file_get_contents($this->template_dir.$temp);
            $cont=str_replace('{$','<?php echo $this->_tpl_vars[\'',$cont);
            $cont =str_replace('}','\']; ?>',$cont);
            $fh=fopen($this->compile_dir.$temp.'.php','w');
            
            fwrite($fh,$cont);
            fclose($fh);
            Return $this->compile_dir.$temp.'.php';
        }
        //编译后展示
        public function display($temp) {
          
            
            $path =$this->comp($temp);
            
            include("$path");
        }
        //把外界的值传递到对象的属性上
        public function assign($key,$value=null) {
            
            //如果第一个参数是数组,则把该数组的单元加到_tpl_vars
            if(is_array($key)){
                $this->_tpl_vars=array_merge($this->_tpl_vars,$key);
            }else{
            $this->_tpl_vars[$key]=$value;
            }
            
            
    
        }
        
    }
   
?>

转载于:https://www.cnblogs.com/xinluo/archive/2013/03/05/2945077.html

你可能感兴趣的文章
Python之路,Day21 - 常用算法学习
查看>>
Android安全-代码安全1-ProGuard混淆处理
查看>>
部署core
查看>>
mysql 时间设置
查看>>
如何在 Xcode 中修改应用的名字
查看>>
有关交换机——熟悉原理是必须的【转载】
查看>>
ACM(数学问题)——UVa202:输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。...
查看>>
【转】Android 读取doc文件
查看>>
js 数据绑定
查看>>
jsp的C标签一般使用方法以及js接收servlet中的对象及对象数字
查看>>
H5 简介
查看>>
window.frameElement的使用
查看>>
nl命令
查看>>
如何使用jQuery $.post() 方法实现前后台数据传递
查看>>
Using Flash Builder with Flash Professional
查看>>
jsp/post中文乱码问题
查看>>
C# 插入或删除word分页符
查看>>
数据库数据的查询----连接查询
查看>>
html图片设置fixed消失,为什么fixed后,DIV7消失了,怎么显示出来?
查看>>
html5隐藏自定义控制按钮,用仿ActionScript的语法来编写html5——第七篇,自定义按钮...
查看>>