zoukankan      html  css  js  c++  java
  • PHP Smarty模板基础

    <?php
    //Smarty模板
    //libs->plugins存放插件 libs->sysplugins存放系统自带插件
    //Smarty.class.php核心类
    
    class Smarty
    {
        public $leftlimit="<{";//左分隔符
        public $rightlimit="}>";//右分隔符
        public $attr;//存放变量信息的数组
        
        //将一个变量存到数组里(注册变量)
        function assign($k,$v)
        {
            $this->attr[$k]=$v;
        }    
        
        //显示模板 原理
        function display($name)//括号里是要显示的模板的名称
        {
            //$name;//相当于index.html这样一个名称
            
            //造模板路径
            $filename=$mobanlujing.$name;
            
            //获取模板内容
            $str=file_get_contents($filename);
            
            /*str里面的内容
            <html>
            <head></head>
            <body>
            
            <div>{$aa}</div>
            </body>
            </html>
            */
            
            //用正则去匹配字符串中出现的{}里面的内容
            //将内容读取(读取到的是数组里面的key)拿key去数组attr里面取value值
            
            /*执行替换后str里面的内容
            <html>
            <head></head>
            <body>
            
            <div><?php echo $attr[key] ?></div>
            </body>
            </html>
            */
            
            //将str里面的内容保存在缓存文件里面
            file_put_contents($filename,$str);
            
            //将存储的文件加载到当前页面
            include(filename);
        }
    }

     main.php

    <?php
    include("../init.inc.php");
    $name="张三";
    $age=12;
    $attr=array("shi"=>"淄博","qu"=>"张店");
    
    class Ren
    {
        public $name="王五";
    }
    $r=new Ren();
    
    $smarty->assign("name",$name);
    $smarty->assign("age",$age);
    $smarty->assign("dizhi",$attr);
    $smarty->assign("ren",$r);

    main.html

    <h1>这是主页面</h1>
    <div style="color:blue">登录者是:<{$name}></div>
    <div>年龄是:<{$age}></div>
    <div>地址是:<{$dizhi.qu}></div>
    <div>好友:<{$ren->name}></div>

    笔记

    smarty的注释语法
    1.<{*<div>你好</div> *}>
    2.<!--<div>你好</div>-->
    
    在smarty里不解析
    {literal}
      中间内容会原样输出
    {/literal}
    
    配置文件
    配置文件里的注释
    1.;(在代码的前面写;可以注释一行)
    2.#(在代码的前面写#可以注释一行)
    配置文件对配置分块
    [one]
    bgcolor=green
    配置文件的写入和读取
    size=15px
    [two]
    bgcolor=blue
    size=20px
    读取
    <{config_load file="style.conf" section="one"}>
    <div bgcolor style="font-size:<{#size#}>px;bgcolor:<{#bgcolor#}>>第一个div</div>
    <{config_load file="style.conf" section="two"}>
    <div bgcolor style="font-size:<{#size#}>px;bgcolor:<{#bgcolor#}>>第二个div</div>
    
    保留变量
    <{smarty.now}>当前的时间戳
    <{smarty.const}>存储的是定义的常量(是数组)不能直接读取,需要再.常量名,比如:<{smarty.const.root}>
    
    
    smarty模板的内置函数
    smarty模板里的if else
    <{if $a gt 10}>
    gt是大于
    <{else}>
    lt是小于
    <{/if}>
    smarty模板里的foreach
    <{foreach $shuzu as $v}>
        <div><{$v}></div>
    <{/foreach}>
    
    <{foreach $shuzu as $k=>$v}>
        <div><{$v@index}>--<{$v@iteration}>--<{$v@first}>--<{$k}>--><{$v}></div>
    <{/foreach}>
    @index        下标从0开始
    @iteration    下标从1开始
    @first        第一行是true
    @last         最后一行是true
  • 相关阅读:
    Maven实战(六)依赖
    Maven实战(五)坐标详解
    Maven实战(四)生命周期
    Maven实战(三)Eclipse构建Maven项目
    Maven实战(二)构建简单Maven项目
    Maven实战(一)安装与配置
    哈佛图书馆自习室墙上的训言——觉得为时已晚的时候,恰恰是最早的时候——不是缺乏时间,而是缺乏努力
    JQuery中国省市区无刷新三级联动查询
    思科VSS配置指南
    思科IS-IS多区域和汇总配置
  • 原文地址:https://www.cnblogs.com/yy01/p/5669816.html
Copyright © 2011-2022 走看看