• smarty简单介绍


    smarty简单介绍

    示意图如下

    简单介绍smarty.class.php类的大体内容,如下:

    <?php
    
    class Smarty  //此类就是libs中的Smarty.class.php类
    {
    	public $leftlimit="<{";	//左分隔符
    	public $rightlimit="}>";//右分隔符
    	public $attr;  //存放变量信息的数组
    	
    	
    	//注册变量
    	function assign($k,$v)
    	{
    		$this->attr[$k] = $v;  //向数组中添加一个值,相当于$sttr[0]="sdc123"
    	}
    	
    	//显示模板
    	function display($name)
    	{
    		//1.造模板路径
    		$filename = $mubanlujing.$name;
    		
    		//2.获取模板内容,内容是一大串代码,(例如模板为index.html)
    		$str=file_get_contents($filename);
    		
    		/*$str里面的代吗内容
    		<html>
    		<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		</head>
    		<body>
    		<div>{$aa}</div>
    		</body>
    		</html>
    		*/
    		
    		//3.用正则去匹配字符串中出现的{}里面的内容
    		
    		//4.将内容读取(读取到的是数组里面的key),拿key去数组attr里面取value值
    		
    			/*$str里面的代码内容
    			<html>
    			<head>
    			<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    			</head>
    			<body>
    			<div><?php echo $attr[key]?></div>
    			</body>
    			</html>
    			*/
    		
    		//5.将str里面的内容保存在缓存文件里面
    		file_put_contents($filename,$str);//$filename是新的文件
    		
    		//6.将存储的文件加载到当前页面
    		include(filename);
    	}
    	
    }
    

      

    配置文件:

    <?php
    
    define("ROOT",str_replace("\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录,方便我们定义文件夹或缓存文件
    
    //echo str_replace("\","/",dirname(__FILE__))."/";  //dirname(__FILE__))代表当前文件的目录c:wampwww603
    
    require ROOT.'libs/Smarty.class.php'; //加载Smarty类文件
    
    $smarty = new Smarty(); //实例化Smarty对象<br>
    
    
    //$smarty -> auto_literal = false; //就可以让定界符号使用空格
    $smarty->setTemplateDir(ROOT.'templates/'); //设置所有模板文件存放位置
    //$smarty->addTemplateDir(ROOT.'templates2/'); //添加一个模板文件夹
    $smarty->setCompileDir(ROOT.'templates_c/'); //设置编译过的模板存放的目录
    $smarty->addPluginsDir(ROOT.'plugins/'); //设置为模板扩充插件存放目录
    $smarty->setCacheDir(ROOT.'cache/'); //设置缓存文件存放目录
    $smarty->setConfigDir(ROOT.'configs/'); //设置模板配置文件存放目录
    
    $smarty->caching = false; //设置Smarty缓存开关功能
    $smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天
    $smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
    $smarty->right_delimiter = '}>'; //设置模板语言中的右结束符
    

      

    第一个smarty简单示例

    1.后端服务器代码main.php

    <?php
    //引入配置文件
    include("../init.inc.php");
    
    $name="张三";
    $age=15;
    $attr=array("淄博","张店");//索引数组
    $attrl=array("han"=>"汉族","man"=>"满族");//关联数组
    
    class Ren       //类
    {
    	public $name="王五";
    }
    $r=new Ren();
    
    $smarty->assign("name",$name);//注册变量
    $smarty->assign("age",$age);
    $smarty->assign("dizhi",$attr);
    $smarty->assign("minzu",$attrl);
    $smarty->assign("ren",$r);
    
    
    $smarty->display("main.html");//显示模板
    

      

    2.前端网页代码main.html

    <html>
    <head>
    <meta charset="utf-8"/>
    </head>
    <body>
    <h1>这是主页面</h1>
    <div style="color:#F39">登陆者:<{$name}></div>
    
    <div>年龄:<{$age}></div>
    
    <div>地址:<{$dizhi[0]}></div>
    
    <div>民族:<{$minzu["han"]}></div>
    <div>民族:<{$minzu.man}></div>
    
    <div>好友:<{$ren->name}></div>
    
    </body>
    </html>
    

      

  • 相关阅读:
    Cleaner Robot
    Lottery
    E. Three States
    cordova+vue-cli4构建app
    网站引导功能实现
    微信小程序双向绑定
    微信小程序html(wxml)传参
    什么是URL?网址的组成
    angular里使用vue/vue组件怎么在angular里用
    angular4 select 绑定(ngModel)对象
  • 原文地址:https://www.cnblogs.com/zst062102/p/5556125.html
Copyright © 2020-2023  润新知