php smarty-php仿smarty的引擎模板走不起来

问题描述

php仿smarty的引擎模板走不起来

templates/intro.tpl

{$title}
{$content}

intro.php

<?php
require_once("MyMinSmarty.class.php");
$mysmarty = new MyMinSmarty;

$mysmarty->assgin("title","我的第一个title");
$mysmarty->assgin("content","我的第一个content");
$mysmarty->display("intro.tpl");
?>

MyMinSmarty.class.php

<?php
class MyMinSmarty{
//定义模板路径
var $template_dir = "./templates/";
//定义编译文件路径
var $complie_dir = "./templates_c/";
//定义存储变量
var $tpl_vars = array();
function assgin($tpl_var,$val=num){//创建一个分配数据的方法,$tpl_var是变量,$val是要分配的值
if($tpl_var!=""){
$this->tpl_vars['$tpl_var']=$val;
}
return 0;}
function display($tpl_file){//创建一个显示数据的方法
$tpl_file_path=$this->template_dir.$tpl_file;//组合模板文件的路径
$complie_file_path=$this->complie_dir."com_".$tpl_file.".php";//组合编译文件的路径

   if(!file_exists($tpl_file_path)){//判断模板文件是否存在
      echo "文件不存在";
      return false;
   }
   $fpl_file_con=file_get_contents($tpl_file_path);//获取模板文件信息
      //echo "文件存在";

   $pattern = array(//正则
      '/{s*$([a-zA-Z_][a-zA-Z0-9_]*)s*}/i'
    );
    $replace = array(//要替换的内容
      '<?php echo $this->tpl_vars["${1}"] ?>'
    );
    $new_str = preg_replace($pattern,$replace,$fpl_file_con);
    echo $new_str;
    file_put_contents($complie_file_path,$new_str);

    include $complie_file_path;

}

}

?>

时间: 2025-01-29 23:05:35

php smarty-php仿smarty的引擎模板走不起来的相关文章

PHP模板引擎Smarty的缓存使用总结_php模板

这里我们将分析一下如何开启和使用smarty缓存,如何清除smarty缓存以及smarty的全局缓存,部分缓存,局部缓存三种缓存机制. 一.开启和使用smarty缓存 要开启smarty的缓存,只需在smarty设置参数里面将caching设为true,并指定cache_dir即可.同时设置cache_lefetime参数指定缓存生存时间(单位为秒).如果要对相同页面生成多个不同的缓存,可以在display或fetch中加入第二参数cache_id,如: 复制代码 代码如下: $smarty->

DEDECMS仿站教程(2)模板程序结构分析

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;    DedeCMS V5.3是织梦组建团队后推出的又一力作,本次发布的新版本,延续了以往的简单.易用.高效,并且在这一版本中进一步加强了模块的概念,是站长建站首选利器,通过不同的模型组合,可组建出地方门户.行业门户.政府及企事业站点等各种应用. 本次发布的新版对内核进行了重大升级,规范了核心文件并重写了会员相关程序.同时,这次对模板引擎做了很大的调整,在保留原有模

smarty、smarty格式化、smarty整数、smarty float、smarty各种转换方式、smarty日期转换等等

<? require("setup.php"); define('PAGETITLE','pagtitle'); function insert_top($lid,$sid) { echo "insert function"; } $smarty=new SmartyRebuild(); $smarty->assign('name','Linux'); $smarty->assign('title','在线有有要有和蔼是是非非要要'); $smar

smarty 模版引擎block疑问

问题描述 smarty 模版引擎block疑问 请问一下,在smarty模版上的这个写法是什么意思?在线等..... 解决方案 SMARTY模版仿smarty的建议模版引擎类PHP 模版引擎Smarty介绍 解决方案二: Smarty末班引擎中提供了三种插件支持,分别是block(块),function(函数),modifier(调节器),用户可以自己扩展. block:是一种非常灵活的高级插件,这种插件在模板中使用时需要成对出现,Smarty内置的block插件例如section,foreac

PHP模板引擎Smarty介绍

模板 用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择,但是官方引擎SMARTY诞生后,选择就有了变化.它的理念和实现都是相当"前卫"的.本文主要讨论SMARTY之于其他模板引擎的不同特点,简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了SMARTY和PHPLIB template的速度和易用性. 一.MVC需要模板 MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代表了"模型"."视图"和

模板引擎SMARTY

模板 用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择,但是官方引擎SMARTY诞生后,选择就有了变化.它的理念和实现都是相当"前卫"的.本文主要讨论SMARTY之于其他模板引擎的不同特点,简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了SMARTY和PHPLIB template的速度和易用性.一.MVC需要模板MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代表了"模型"."视图"和&q

PHP模板引擎SMARTY

模板 用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择, 但是官方引擎SMARTY诞生后,选择就有了变化.它的理念和实现都是 相当"前卫"的.本文主要讨论SMARTY之于其他模板引擎的不同特点, 简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了 SMARTY和PHPLIB template的速度和易用性. 一.MVC需要模板 MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代 表了"模型"."视图&q

PHP模板引擎smarty详细介绍

  这篇文章主要介绍了PHP模板引擎smarty详细介绍,本文讲解了什么是smarty.smarty优点.不适合使用smarty的地方.smarty目录结构及版本,需要的朋友可以参考下 /* 一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 二.smar

smarty模板引擎之配置文件数据和保留数据

 这篇文章主要介绍了smarty模板引擎之配置文件数据和保留数据的方法,实例分析了smarty模板引擎配置文件数据及获取数据的具体技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了smarty模板引擎之配置文件数据和保留数据的方法.分享给大家供大家参考.具体如下: 一.如何让模板直接从配置文件中取出数据 1.使用场合 当某个变量值,不希望直接写死到程序中(通过smarty分配),就可以通过配置文件来获取. 2.写配置文件 新建文件夹:config 新建文件名:my.ini或