smarty 基础

smarty  模板  主要用来 分离程序的前端和后端

<?php

//smarty 类 至少要有这三个变量存在
class smarty
{
public $left = "{"; //左分隔符
public $right = "}" ;//右分隔符

    //$smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
    //$smarty->right_delimiter = '}>'; //设置模板语言中的右结束符
public $arr = array();//存储变量




function assign($key,$value)//   assign()方法向模板里面注册变量
{

$this->arr[$key] = $value; //找到数组向里面赋值


//smarty 类里面必须要提供一个方法 assign() 方法 用来往模板里面注册变量的方法
//必须有两个参数 key 和 value 代表你需要注册变量的名字和值
}
// $smarty->assign("aa","world");

//display ()方法 用来显示模板 必须给一个参数 可以是模板的名称或者模板的路径
//将模板文件拿到PHP 页面显示 将模板里面的变量解析

function display($name)
{
//通过名称找到模板路径 smary 里面所有的模板统一放到一个文件夹下

$url = "/".$name;
//读取模板文件
$str = file_get_contents($url);//读文件内容方法 返回整个模板的字符串

//将str字符串里面的某些内容({变量})进行了替换 通过正则匹配 左右分隔符 取得变量
//将模板里面的<{$aa}>替换成<?php echo $arr[aa]

//将替换好的字符串保存到编译好的文件
file_put_contents($filename,$str);

//将编译好的文件 拿到当前页面显示
include($filename);

}

}

//init.inc.php smarty的入口文件 比较重要
//libs文件夹 核心目录 包含smarty.class.php 核心类
//plugins 存放的是插件 sysplugins 系统插件 Autoloader.php 自动加载类文件
//configs 存放配置文件 plugins 自定义插件目录 不要改自带的
//templates 存放模板 templates_c 存放编译过的文件

// echo_FILE_ 双下划线fille 代表当前文件的目录 什么文件都可以用 找到当前项目的根


// dirname(_FILE_) 取路径中的目录

dir 目录的意思

echo str_replace()替换字符串

查找替换 需要三个参数 :

1.需要替换的字符串 也就是"" 反斜杠 但双引号里面写一个反斜杠代表转译 所以这里写两个

2. 要替换成的字符串 也就是"/"

3. 要替换什么 也就是 目录

echo str_replace("\","/",dirname(_FILE_)."/")

替换完成用.拼接一个"/"

//Root 里面存的是该程序的根
//require 相当于include 引入外部的文件

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; //就可以让定界符号使用空格 如果默认定界符是{} 不要打成false 空格会解析 而且解析错误

//如果$smarty -> auto_literal =true;代表定界符(默认{} 我们改成了<{}>)不可以使用空格一旦使用便不会解析

$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 = '}>'; //设置模板语言中的右结束符

 

原文地址:https://www.cnblogs.com/bhmmlxieliming/p/6519114.html