zoukankan      html  css  js  c++  java
  • smarty 模板的入门使用

    1. <?php
    2. require_once 'inc/libs/Smarty.class.php';
    3. $s=new Smarty();
    4. // echo $s::SMARTY_VERSION;
    5. // echo smarty::SMARTY_VERSION;//输出版本号
    6. $s->debugging=false;
    7. $s->setTemplateDir('html');
    8. $s->assign('title','我的网页');
    9. $s->assign('address',['郑州','北京','上海']);
    10. class st{
    11. public $name="jack";
    12. public $age=20;
    13. public $address="郑州";
    14. }
    15. $st=new st();
    16. $s->assign('st',$st);
    17. $s->display('index.html');
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>网站首页</title>
    6. </head>
    7. <body>
    8. <h1>显示学生姓名:{$st->name}</h1>
    9. <h1>{$title}</h1>
    10. <hr>
    11. {*模板的注释语句 *}
    12. {foreach $address as $k=>$v}
    13. {$v}<br>
    14. {foreachelse}
    15. 没有数据循环
    16. {/foreach}
    17. </body>
    18. </html>

    设定时区
    date_default_timezone_set('prc');
    分配数据变量
    $s->assign('age',100);  
    index.html读取
    <h1>{$age}</h1>  
    模板注释语句
    {*模板注释*}
    修饰变量
      
    $s->assign('address',['郑州','北京','上海']);  
    <h1>{$address[0]}</h1>  只显示一条信息
    数组的循环输出
    {foreach $address as $k=>$v}
    {$v}<br>
    {foreachelse}
        没有数据循环
    {/foreach} 
     输出下标
    {foreach $address as $k=>$v}
    {$k}<br>
    {foreachelse}  
        没有数据循环
    {/foreach} 
    {foreach $num as $k=>$v}
    {$v}----{$k}---{$v@index}---{$v@first}
    ---{$v@last}---{$v@total}---{$v@iteration}<br>
    {foreachelse}
    没有循环数据输出
    {/foreach} 

    {cycle values='green,red,yellow'} 显示隔行的颜色
    1. {foreach $num as $k=>$v}
    2. <span style="color:{cycle values='green,red,yellow'}">
    3. {$v}----{$k}---{$v@index}---{$v@first}
    4. ---{$v@last}---{$v@total}---{$v@iteration}<br>
    5. </span>
    6. {foreachelse}
    7. 没有循环数据输出
    8. {/foreach }

     

    引入时一定注意此文件的编码要修改为utf-8;
    编写一个类在php文件中
    1. class st{ //创建类并读出来
    2. public $name="jack";
    3. public $age=20;
    4. public $address="郑州";
    5. }
    6. $st=new st();
    7. $s->assign('st',$st);
    html文件中调用
    1. <h1>显示学生姓名:{$st->name}家庭住址:{$st->address}学生年龄{$st->age}岁</h1>
    smarty连接mysql读取数据库的信息
    1. //pdo 查询显示数据
    2. include 'Db.class.php';
    3. $db = new Db();
    4. $s->assign('stu',$db->query('pro','title,img'));
    html显示数据{$v@iteration}显示前面的数字
    1. {foreach $stu as $v}
    2. {$v@iteration}、{$v['title']}<br>
    3. {foreachelse}
    4. 没有数据读出
    5. {/foreach}
    {counter}记数器
    1. {counter}、kljfdsj<br>
    2. {counter}、dsfksldjf<br>
    3. {counter}、dskf<br>
    4. {counter}、kljfdsj<br>

    1. {counter name=aa skip=1 start=10}、郑州<br>
    2. {counter name=aa}、北京<br>
    3. {counter name=aa}、上海<br>
    4. {counter name=aa}、天津<br>


    也可以读出多个字段
    1. {foreach $stu as $v}
    2. {$v@iteration}、{$v['title']}===={$v['img']}<br>
    3. {foreachelse}
    4. 没有数据读出
    5. {/foreach}
    模板中定义变量并输出直接在html页面直接编写并输出
    1. {*模板文件中定义变量*}
    2. {$age=20}
    3. {$add='郑州'}
    4. {$love=['音乐',20]}
    5. {$age}----{$add}----{$love[0]}//输出
    时间格式的函数
    1. {*直接调用函数*}
    2. {date('Y-m-d H:i:s')}<br>
    3. {time()|date_format:'Y-m-d H:i:s'}
    {$smarty.server.SERVER_NAME}  获取域名
    {$smarty.server.REMOTE_ADDR}  获取客户ip
    default 如果接不到值会有默认值|为变量的修饰器或调节符
    1. {$smarty.get.id|default:1}
    2. {$smarty.post.id|default:1}
    3. {$smarty.request.id|default:1}
    4. {$smarty.session.user|default:'jack'}
    {literal}  {/literal}   {*忽略不适用模板解析*} 忽略如果不加就会报错否则格式要修改为如下的格式
    1. <script>
    2. function aa(){
    3. alert('ok');
    4. }
    5. aa();
    6. </script>
    1. <script>
    2. function aa(){alert('ok');}
    3. aa();
    4. </script>
    或者为加上{literal} 任何格式都可以出现结果
    1. {literal}
    2. <script>
    3. function aa(){alert('ok');//不换行不能输出
    4. }
    5. aa();
    6. </script>
    7. {/literal}
    truncate:数字:要省略显示的符号   表示截取多少个字串 字符串截取
    1. $s->assign('title','aaa的水立方接收到了解放了圣诞节福利圣诞节疯狂两三点');
    1. <h1>{$title|truncate:11:'###'}</h1>

    1. <h1>{$name='打了飞机冻死了房间里撒大家分开了圣诞节分类考试大姐夫'}</h1>
    2. <h1>{$name|truncate:10}</h1>

    加密函数的使用
    1. {$i='ok'}
    2. {$i|md5}


    upper转换为大写  ,lower全部转换为小写

    1. $s->assign('title','aaa的水立方接收到了解放了圣诞节福利圣诞节疯狂两三点');
    1. <h1>{$title|default:'未分配'|upper|truncate:11}</h1>
    smarty 框架的内置函数max最多循环几次,step为步长
    for语句
    1. {for $i=1 to 10}
    2. {$i}
    3. {/for}
    while语句
    1. {$n=1}
    2. {while $n<10}
    3. {$n++}
    4. {/while}
    当需要导入一个文件时在zend里面没有指定字符集会默认为gbk所以要修改字符集为uft-8

    在同级的html文件中编写
    1. include 'footer.html';
    if判断函数
    1. {if 1==1 }
    2. ff
    3. {/if}
    4. {$n=1}
    if else
    1. {if 1==2}
    2. {else}
    3. yyyy
    4. {/if}
    if else if
    1. {if 1==2}
    2. 2
    3. {else if 1==3}
    4. 3
    5. {else if 1==4}
    6. 4
    7. {else}
    8. 5
    9. {/if}
    capture 里面可以一段一段的写然后调用
    1. {capture assign="info"}
    2. dsflsd<br>
    3. dafd<br>
    4. {time()}
    5. {for $y}
    6. {/capture}
    7. {$info}
    {*fetch 抓取其他网页拿过来抓取的只是一个效果*}
    {fetch file="http://www.baidu.com"}  
    {cycle values='red green yellow'}隔行换色
    1. {for $i=1 to 50}
    2. <div style="background-color:{cycle values='green,yellow,red,blue'};margin:20px auto; 600px;">{$i}</div>
    3. {/for}

    php代码单选多选下拉列表
    1. $s->assign('add',['hn'=>'河南省','sh'=>'上海','bj'=>'北京']);
    2. $s->assign('adf',['河南省','上海','北京']);
    html代码
    1. {html_checkboxes name='id' options=$add selected='bj' separator='&nbsp;&nbsp;'}<br>
    2. {html_checkboxes name='id' output=$adf selected=['河南省','北京'] values=$adf separator='&nbsp;&nbsp;'}<br>
    3. {html_radios name='id' output=$add selected='上海' values=$add separator='&nbsp;&nbsp;' }<br>
    4. {html_options name='id' output=$add selected='上海' values=$add separator='&nbsp;&nbsp;' }<br>
    5. {html_options name='id' options=$add selected='bj' values=$add separator='&nbsp;&nbsp;' }<br>

    {mailto address="dfsfds@126.com"}点击可以直接登录发送邮件

    <a href="mailto:webrex@126.com">给我写信</a>  

     随机色
    1. if($c=='rand'){
    2. $cs='0123456789abcdef';
    3. $ccc='#';
    4. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    5. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    6. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    7. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    8. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    9. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    10. $c=$ccc;
    11. }
    编写颜色修饰器modifier.cc.php
    1. <?php
    2. function smarty_modifier_cc($string,$c='rand'){
    3. if($c=='rand'){
    4. $cs='0123456789abcdef';
    5. $ccc='#';
    6. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    7. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    8. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    9. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    10. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    11. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
    12. $c=$ccc;
    13. }
    14. return "<span style='color:$c'>$string</span>";
    15. }
    1. {$title|cc}<br>
    不要修改此文件,此文件为编译型的修改器











  • 相关阅读:
    Hibernate>查询缓存 小强斋
    hibernate>抓取策略 小强斋
    Spring>环境 及 为什么使用spring 小强斋
    Hibernate>一级缓存 小强斋
    Spring>环境 及 为什么使用spring 小强斋
    【设计模式系列】OO设计原则之LSPLiskov替换原则
    【设计模式系列】OO设计原则之SRP单一职责原则
    【Android】选项卡使用
    【人生】不管你挣多少, 钱永远是问题
    【设计模式系列】序
  • 原文地址:https://www.cnblogs.com/lsr111/p/4612215.html
Copyright © 2011-2022 走看看