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:\wamp\www\0603

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>

  

smarty简单介绍的更多相关文章

  1. smarty的简单介绍

    我们可以看到,smarty的程序部分实际就是符合php语言规范的一组代码,我们依次来解释一下:1./**/语句: 包含的部分为程序篇头注释.主要的内容应该为对程序的作用,版权与作者及编写时间做一个简单 ...

  2. (转)PHP模板smarty简单入门教程

    转之--http://blog.163.com/zf_2011@126/blog/static/166861361201062595057962/ 如何在smarty中开始我们程序设计.PHP代码:- ...

  3. smarty 基本介绍及示例

    什么是smarty? Smarty是一个使用PHP写出来的模板引擎,是业界最著名的PHP模板引擎之一.Smarty分离了逻辑代码和外在的内容,提供一种易于管理和使用的方法,用来将原本与HTML代码混杂 ...

  4. 《PHP 5.5从零開始学(视频教学版)》内容简单介绍、文件夹

    <PHP 5.5从零開始学(视频教学版)>当当网购买地址: http://product.dangdang.com/23586810.html <PHP 5.5从零開始学(视频教学版 ...

  5. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  6. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  7. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  8. yii2的权限管理系统RBAC简单介绍

    这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...

  9. angular1.x的简单介绍(二)

    首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...

随机推荐

  1. HttpPost发送Json

    1.public static JSONObject post(String url,JSONObject json){ 2. HttpClient client = new DefaultHttpC ...

  2. Aptana Studio 3的汉化

    Aptana Studio 3(下面简称Aptana 3)的汉化方法 1.找到这个网站 http://aptana.com/support 2.单击下面的链接 view documentation 在 ...

  3. Weak Pair---hud5877大连网选(线段树优化+dfs)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5877  题意:给你一颗树,有n个节点,每个节点都有一个权值v[i]:现在求有多少对(u,v ...

  4. Face The Right Way---hdu3276(开关问题)

    题目链接:http://poj.org/problem?id=3276 题意:n牛头排成一排,每头牛两个状态,向前或向后,为了让所有的牛都向前,现在有一个机器 每次 能控制连续K头牛转换自己的状态,求 ...

  5. 根据 字数 确定 UI控件高度

    //字体 textLabel.font = [UIFont systemFontOfSize:13]; CGFloat labelWidth = [UIScreen mainScreen].bound ...

  6. CSS知识点补充

    一.css框模型概述 元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框.边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素 1.css内边 ...

  7. http://blog.csdn.net/pi9nc/article/details/23169357

    http://blog.csdn.net/pi9nc/article/details/23169357

  8. iOS Architecture和Valid architectures

    目前ios的指令集有以下几种: 1,armv6,支持的机器iPhone,iPhone2,iPhone3G及对应的iTouch 2,armv7,支持的机器iPhone4,iPhone4S 3,armv7 ...

  9. SQLServer DMV Query

    1.DMV Query to identify all active SQL Server Sessions The query below identifies all currently acti ...

  10. 压测 502 日志报错 upstream timed out (110: Connection timed out)

    环境介绍 服务器:centos6.5服务:nginx proxy 问题描述: 压测 开发同事 的开发环境项目没事,但是 线上机器 命中%50 ,大量502 php的某些页面打不开,页面提示gatewa ...