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

     

  • 相关阅读:
    MVC路由配置例
    js制作烟花效果
    限制帐号同时两处以上登录-ASP.NET
    地图按范围查找-经纬度计算
    多种JSON格式及遍历方式
    .net错误日志记录(log4)
    .net WebServer示例及调用(接口WSDL动态调用 JAVA)
    关于大型网站技术演进的思考
    优化网站加载速度的14个技巧
    大型网站架构改进历程
  • 原文地址:https://www.cnblogs.com/bhmmlxieliming/p/6519114.html
Copyright © 2020-2023  润新知