smarty核心思想 自制模板引擎

本文介绍了一种使用PHP进行文件内容替换的方法,并通过面向对象的方式实现了一个简易的模板引擎。该模板引擎能够将预定义的占位符替换为实际的数据内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php

$tit = '今天下雨了,淋了半条街';


function tit($file){
    //读文件
    $h = file_get_contents($file);
    $h = str_replace('{$','<?php echo $',$h);
    $h = str_replace('}',';?>',$h);
    //新文件名 1.html.php
    $tmp = $file.'.php';
    //写到一个文件里
    file_put_contents($tmp,$h);
    return $tmp;
}


include(tit('1.html'));

  

读取1.html然后把{$tit} 替换成php语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{$tit}
</body>
</html>

  封装成一个类,用面向对象思想来搞

<?php

class Mini
{
    public $data = array();
    public function tit($file)
    {
        //读文件
        $h = file_get_contents($file);
        $h = str_replace('{$', '<?php echo $this->data[\'', $h);
        $h = str_replace('}', '\'];?>', $h);
        //新文件名 1.html.php
        $tmp = $file . '.php';
        //写到一个文件里
        file_put_contents($tmp, $h);
        return $tmp;
    }
    public function assign($key,$value){
        $this->data[$key] = $value;
    }
    public function display($file){
        $filetemp = $this->tit($file);
        include($filetemp);

        //这个时候没有这个变量
        //echo $tit;
    }
}

$tit = '今天下雨了,淋了半条街';
$mini = new Mini();
$mini->assign('mytit',$tit);
$mini->display('1.html');
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{$mytit}
</body>
</html>

 

转载于:https://www.cnblogs.com/as3lib/p/6486160.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值