smarty基础

smarty模板的作用可以让前端和后端分离(也就是前端的显示页面和后端的php代码)。

smarty模板的核心是一个类,下载好的模板中有这么几个重要的文件夹

 

 

(1)libs核心文件夹
(2)int.inc.php这是入口文件
(3)plugins:自己写的插件文件夹
(4)templates_c:存放编译好的文件
(5)int.inc.php这是入口文件
(6)定义好常量:不能修改

一、如何实现前后分离的原理:
核心是一个类
1.左分隔符{
2.右分隔符}
3.数组(默认空数组):存储变量

4.提供一个方法:向模板中注册变量的方法(assign(名字,值))
方法存在数组中的(找到数组存入变量)

5.还有一个方法:显示模板的(display(模板的名称或是路径))
两个功能:拿模板,解析变量

通过名称就可以找到模板的路径
$url = "模板路径".$name ;

读取模板文件,返回字符串
$str = file_get_contents($url);

将字符串的某些内容作了替换
1.将模板中的"名字"替换成 一段php代码 echo $arr=[名字]
2.将替换好的字符串保存到临时文件或者是编译好的文件
file_put_contents(存放的位置,上面替换好的字符串);
3.将编译好的文件拿到当前页面显示
include(临时文件的目录);

二、怎么用模板?

模板页面
1.引入模板的入口文件
include("入口文件路径位置");

2.直接用对象
提供一个方法:向模板中注册变量的方法(assign(名字,值)
$smarty->assign("ceshi","你好");
提供一个方法:显示模板的(display(模板的名称或是路径))
$smarty->display("ceshi.html");


正常页面
{assign(名字)}

注意:
1.访问的是php的页面,显示的是html页面
2.html用到了外部的样式表,位置是相对于访问的php页面来找外部样式

三、入口文件的内容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 
define( "ROOT" , str_replace ( "\\" , "/" ,dirname( __FILE__ )). '/' ); //常量ROOT中指定项目根目录
 
//echo str_replace("\\","/",dirname(__FILE__)).'/'; //获取当前文件所在的位置
 
require ROOT. 'libs/Smarty.class.php' ; //加载Smarty类文件
$smarty = new Smarty(); //实例化Smarty对象
 
 
define( "CSS_PATH" , "/project/css/" );
define( "JS_PATH" , "/project/js/" );
 
//$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; //设置缓存模板有效时间一天
<br> //下面的内容是修改左和右的分隔符形式
$smarty ->left_delimiter = '<{' ; //设置模板语言中的左结束符
$smarty ->right_delimiter = '}>' ; //设置模板语言中的右结束符
 
?>

转载于:https://www.cnblogs.com/du892294464/p/7096225.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值