smarty模板基础知识

1、定义

Smarty是一个使用php写出来的模板引擎,它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与html代码混杂在一起PHP代码逻辑分离。

简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

2、

<?php
    class Smarty
    {
        public $left="{";  //左分割符
        public $right="}";

        //所有后台数据要存在这个数组里;
        public $arr =array();

        //注册变量(将这个变量写到数组里存一下),将得到的数据传到上面的数组中
        public function assign($name,$value){
            $arr[$name] = $value;
        }

        //显示模板(核心)(看下图)
        public function display($url){

            //找到模板文件
            $str = file_get_contents($url);

            //根据正则匹配带有标记({})的内容,做替换

            //将编译好的文件缓存下来
            file_get_contents("",$str);

            //将文件拿到当前页面显示
            include();

        }

    }

?>

3、例子:

(1)在12.php页面:(字符串类型;数组;对象)

<?php
    //引入smarty类
require "../init.inc.php";

//数组类型
$arr =array("one"=>"1111","two"=>"2222");

//对象
class Ren{
    public $name="张三";
}
$r= new Ren();

//注册变量
$smarty->assign("ceshi","hello");  //字符串
$smarty->assign("shuzu",$arr);  //数组
$smarty->assign("duixiang",$r);  //对象

//显示
$smarty->display("test.html");
?>

(2)test.html页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<{$ceshi}>
<{$shuzu["one"]}>
<{$duixiang->name}>
</body>
</html>

运行结果如下:

  

  

  

时间: 2024-08-06 11:58:28

smarty模板基础知识的相关文章

smarty模板基础2

Smarty自带了一些内置函数,这些内置函数是Smarty模板引擎的组成部分.他们被编译成相应的内嵌PHP代码,以获得最大性能. 您创建的自定义函数不能与内置函数同名,也不必修改这些内置函数. 其中一些具有assign属性,用来收集函数结果,并将结果分配给一个命名的模板变量,而不是将内容输出,类似于{assign}函数. 一.{if}{elseif}{else} 条件 随着一些特性加入到模版引擎,Smarty的{if}语句与php的if语句一样富有弹性.每一个{if}必须与一个{/if}成对出现

smarty模板基础1

smarty模板的作用可以让前端和后端分离(也就是前端的显示页面和后端的php代码). smarty模板的核心是一个类,下载好的模板中有这么几个重要的文件夹 (1)libs核心文件夹(2)int.inc.php这是入口文件(3)plugins:自己写的插件文件夹(4)templates_c:存放编译好的文件(5)int.inc.php这是入口文件(6)定义好常量:不能修改 一.如何实现前后分离的原理:核心是一个类1.左分隔符{2.右分隔符}3.数组(默认空数组):存储变量 4.提供一个方法:向模

smarty模板基础3 *缓存数据*

缓存数据,这个并不是暂存的缓存,而是写入了内存的缓存 通过一个例子来书写:缓存数据 一.书写php和html页面的基本功能 既然是用smarty模板,那么前端和后端要分开写了 (1)php页面 <?php $filename = "../cache/huancun.html"; //这个是放缓存的页面(缓存的不是代码,而是页面的源信息) include("../init.inc.php"); //引入入口文件 include("../DBDA.php

smarty模板基础

smarty模板的作用可以让前端和后端分离(也就是前端的显示页面和后端的php代码). smarty模板的核心是一个类,下载好的模板中有这么几个重要的文件夹 (1)libs核心文件夹(2)int.inc.php这是入口文件(3)plugins:自己写的插件文件夹(4)templates_c:存放编译好的文件(5)int.inc.php这是入口文件(6)定义好常量:不能修改 一.如何实现前后分离的原理:核心是一个类1.左分隔符{2.右分隔符}3.数组(默认空数组):存储变量 4.提供一个方法:向模

smarty模板基础(部分转)

首先需要建一个smarty的类文件.php <?php class smarty { public $left = "{";//左分隔符 public $right = "}";//右分隔符 public $arr = array(); //存储变量 //向模板里面注册变量 function assign($key,$value) { $this->arr[$key] = $value; } //显示模板 function display($name)

模板……基础知识笔记

函数模板技术定义了参数化的非成员函数,这时的程序能够不同的参数类型调用相同的代码 类模板:管理其他数据类型的通用数据类型 容器:容器区别  使用范例 泛型编程:独立于任何特定类型实现的方式编写代码.需要用户提供具体程序实例所操作的类型或值. 继承和多态有什么区别 1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更一般的特征和行为,而子类除了具有父类

smarty模板引擎(一)基础知识

一.基本概念 1.什么是mvc? mvc是一种开发模式,核心思想是:数据的输入.数据的处理.数据显示的强制分离. 2.什么是smarty? smarty是一个php的模板引擎.更明确的来说,它可以帮助开发者更好的分离程序逻辑和页面显示. 3.smarty运行原理 模板文件,就是一个显示数据的模板,其中需要显示的数据用占位符代替. smarty运行时,会读取模板文件,将模板文件中的占位符替换成真正的数据,并输出一个处理后的php文件,交由服务器运行. 二.自己写一个smarty模板 为了更好的理解

smarty模板引擎基础(二)

smarty模板引擎所需文件夹共可分为存放页面缓存的(cache).存放配置文件的(configs).存放模板扩充插件的(plugins).存放模板文件的(templates).存放编译后的模板文件的(templates_c).存放后端程序代码的(main); 一.configs文件夹:即保存一些与页面配置有关的相关代码,可以用[]来进行模块分类 ,以conf格式保存,可用记事本打开查询,在页面中的调用指令为 <{config_load file='文件名' section="模块名&qu

struts基础知识

1.框架 (1).是一系列jar包,其本质是对JDK功能的拓展. (2).框架是一组程序的集合,包含了一系列的最佳实践,作用是解决某一个领域的问题. 2.框架的作用:       框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量.与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用 3.框架和设计模式的区别 有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. (1).  框架.设计