zoukankan      html  css  js  c++  java
  • smarty模板原理

    1.smarty模板原理是个类所以建个类文件smarty.class.php

    <?php
    class smarty
    {
    	public $left = "{";	/*左分隔符*/
    	public $right = "}";/*右分隔符*/
    	
    	
    	 //成员变量是个数组并且默认是个空的值()
    	public $arr = array();//数组默认是空的()  用来存储变量  储存变量
    	
    	
    	//向模板里面注册变量(需要两个参数,名字和值)
    	function assign($key,$value)
    	{	
    		//$this里面找数组ass。在往ass数组里面加内容
    		$this->arr[$key] = $value;//往arr数组里存数变量
    	}
    	
    	
    	//display方法用来显示模板的
    	function display($name)//括号里要给个模板名称或模板的路径
    	{
    		
    	}
    	
    	
    }
    

    2.举个例子

    在smarty文件夹里找到project文件夹在里面创建自己的文件夹我的是main,在文件夹里创PHP文本xiugai.php

    例子如下:

    引入类

    调用assign的方法,往里面存变量aa   aa的值是hello

    $smarty调用display方法,显示aa.html

    在templates文件夹里创建aa.html文件

    在浏览器里访问PHP文件输出如下

    查看网页源代码如下

    访问的是xiugai.php页面,结果显示的却是aa.html模板页面

    总结:display方法是把aa.html模板文件容拿到xiugai.php页面显示

    另一个例子:

    把aa变量的值(world)显示在xiugai.php页面

     aa.html页面添加分隔符跟变量aa  <{$aa}>

    display方法有2个作用

    (1)把模板拿到xiugai.php页面

    (2)把变量解析<{$aa}>

    通过模板名称name就能找到模板的路径

    4.

    <?php
    class smarty
    {
    	public $left = "{";	/*左分隔符*/
    	public $right = "}";/*右分隔符*/
    	
    	
    	 //成员变量是个数组并且默认是个空的值()
    	public $arr = array();//数组默认是空的()  用来存储变量  储存变量
    	
    	
    	//向模板里面注册变量(需要两个参数,名字和值)
    	function assign($key,$value)
    	{	
    		//$this里面找数组ass。在往ass数组里面加内容
    		$this->arr[$key] = $value;//往arr数组里存数变量
    	}
    	
    	
    	//display方法用来显示模板的
    	function display($name)//括号里要给个模板名称或模板的路径
    	{
    		//找模板路径。加入$url代表模板的路径
    		$url = "/";//根据变量找到模板文件夹的路径后面拼上$name.得到个完整路径
    		//读取模板要用到个方法,文件操作的方法,如何读文件里的内容
    		$str = file_get_contents($url);//获取文件内容的方法,获取静态页面的全部内容之后返回个字符串$str
    		
    		//将str里面的某些内容作了替换。某些内容代表花符号里的变量进行了替换<{$aa}>  替换成嵌入php代码。<?php ecoh $arr[aa]    ?>
    	
    	//将替换好的字符串保存到编译好的文件。他有个方法如下
    	file_put_contents($filename,$atr);//建个文件夹filename把遍历玩的$atr放进去
    	
    	//将编译好的文件拿到当前页面显示
    	include($filename);//把PHP文件拿到当前页面显示
    	
    	}
    	
    	
    }
    

     5.init.inc.php这是smarty模板的入口文件

    libs文件夹里面有Smarty.class.php这是smarty模板的核心类

    Autoloader.php这是自动加载的类文件

    plugins这个文件夹这里存放插件

    sysplugins这个文件夹是系统插件

    外层文件

    cache放缓存文件

    configs这个文件夹放配置文件

    plugins放自己写的插件

    templates放所有模板文件(静态网页)

    templates_c放编译过的文件

    6.定义一个常量以后可以在任何地方都可以访问ROOT

     echo _FILE_;//能够取到当前文件的目录如下

     

    dirname方法是取路径中的目录如下:

    echo dirname(_FILE_);//取除了文件名除外的部分

     echo str_replace();//查找替换需要三个参数 第一个参数(要替换的字符串找路径里的反斜杠[""双引号里一个反斜杠表示转义])(第二个参数是正斜杠)(第三个是要替换那个东西。替换【_FILE_】取出的目录)

     echo str_replace("\","/",dirname(_FILE_))."/";//这是替换完的目录

  • 相关阅读:
    css sprites图片背景优化技术
    CSS3新特性(整理贴)
    span HTML元素
    jQuery1.2选择器(2)
    JavaScript 弹出窗口总结
    jQuery1.2选择器(1)
    jquery如何判断checkbox(复选框)是否被选中
    使用 Lightbox 2 和 JavaScript 构建出色的图片库
    如何在一台电脑同时安装IE6、IE7、FF2、FF3进行网页调试
    IE的有条件注释详解(附实例代码)
  • 原文地址:https://www.cnblogs.com/aqxss/p/6503638.html
Copyright © 2011-2022 走看看