模版引擎详解,thinkphp模板输出技巧汇总_php实例_脚本之家

本文实例总结了thinkphp模板输出技巧。分享给大家供大家参考。具体总结如下:

 第15节:ThinkPHP 3.1.2 模板变量详解

1、模版基本使用

IndexAction里添加index方法,内容为:

$this->assign(‘name’,’赵桐正’);  // 将值“赵桐正”交给标识“name”

$this->display();   //显示模版,Tpl文件夹下默认index.html

Tpl下的模版index.html里显示模版变量name的值

{$name}

模版变量的值是由后台分配过来的。


 

2、模版变量输出:

  支持标量输出;字符串、数字、bool等

  支持常规数组输出;

(在index方法中,添加数组,$arr = array(‘a’,’b’);
$this->assign(‘name’,$arr);

   在模版中,{$name[0]}; 则会输出’a)

  支持关联数组输出;

($arr = array(‘k1’=>’a’,’k2’=>’b’);

   {$name[‘k1’]}; 则会输出a;

 另外,关联数组还可以使用{$name.k1}也能同样输出)

  支持对象输出;

  $obj= new test; $this->assign(‘name’,$obj);   

  {$name:k} 或者 {$name->k} //k是对象里的一个属性


 

3、系统变量

  在模版中直接获取系统变量的值,如POST GET SESSION SERVER等值

$Think.get.name; 模版可以直接读取地址栏里默认为get提交的数据
:index/name/ztz

$Think.session.id;输出session变量里的id

$Think.const.APP_NAME; 输出常量里的APP_NAME


 

4、使用函数

  例如在模版中对传递过来的值进行md5加密:{$name|md5}
 它在编译时会自动变成 <?php echo (md5($name)); ?> 

  例如时间戳处理显示。time=time();   {$name|date=’Y-m-d H:i:s’ ,
### } 其中###是占位符,编译时被$name替换。

  在Runtime的Cache文件里有编译代码。


 

5、默认值

设置默认值 {$name|default=’默认’} 若$name未赋值,则取默认值


 

6、运算符

+ – * / % ++ —

{$name++}



 

一、变量输出

 第16 17 18节:ThinkPHP 3.1.2 模板中的语法知识

1.标量输出:复制代码 代码如下:{$name}

 

一、导入CSS和JS文件

1、传统导入方式:

  CSS:<link rel=’stylesheet’ type=’text/css’ color:
#ff0000;”>__PUBLIC__/Css/test.css’/>

  JS: <script src=’__PUBLIC__/Js/test.js’></script>

  其中,__PUBLIC__会自动被模版引擎替换成路径:在项目所在同级目录下创建文件夹Public,内部创建Css和Js两个文件夹。然后在Css里建立test.css、test.js即可调用。

2、import标签导入外部CSS和JS:

  <import type=’css’ file=’Css.test’ />

  <import file=’Js.test’ /> import默认是js文件,可以省略 type属性

注意:若CSS
JS文件夹不是放在Public文件夹内,而是同级的其他(My文件夹)文件夹内。在模版调用时要设置
basepath=’./My/’

即:<import type=’css’ file=’Css.test’ basepath=’./My’  />

3、load标签 自动检测css或js,只需要地址

<load  />


 

二、分支结构

  1、在模版中使用 if else

逻辑判断符:  gt >;lt <;eq =;elt <=;egt >=;neq !=;heq ===;

g:greater;l:less;eq:equal

<if condition = '$name eq 男 '>      男人是泥巴做的      <else /> //单标签      女人是水做的  </if>

<if condition = '$age lt 18'>      未成年      <elseif condition='$age eq 18' />      青春年少      <else />      成年  </if>

 

  2、switch case

<switch name='number'>      <case value='1'>1个</case>      <case value='2'>2个</case>
  <default/>这里是默认值
  </switch>

三、循环结构

  1、for 

  <for start=’0′ end=’10’>  {$i} </for>循环执行十次。

  循环变量名 默认为 $i。

  完整用法: <for start=”开始值” end=”结束值” step=”步进值”
name=”循环变量名” comparison=”lt”>  </for>  
(comparison为判断条件。lt为正序,gt为逆序)


  2、volist 数组遍历

//遍历一维数组
$arr=array("a1","b2","c3","d4");  $this->assign("list",$arr);

<volist name='list' id='v'>      {$v}<br/>  </volist>

a1
b2
c3
d4

//遍历二维数组
$arr[0]=array('id'=>1,'username'=>'ztz');  $arr[1]=array('id'=>2,'username'=>'ztz2');  $this->assign('list',$arr);

//每次取是一个数组,现在我只取username  <volist ame='list' id='v'>      {$v.username}<br/>  <volist>

ztz
ztz2

  3、foreach数组遍历 比volist简单

$arr=array('k1'=>'v1','k2'=>'v2','k3'=>'v3');  $this->assign('list',$arr);

<foreach name='list' item='v' key='k'>      {$k}-->{$v}<br/>  </foreach>

k1-->v1
k2-->v2
k3-->v3

永利集团304com,使用foreach打印数据库内容(二维数组$arr):

$mytable=M('mytable');  $arr=$mytable>select();  $this->assign('list',$arr);

//使用表格形式打印出数据库内容
//v是取出的一个一维数组  <table>      <foreach name='list' item='v'>          <tr>                  <td>{$v.id}</td>                  <td>{$v.username}</td>                  <td>{$v.password}</td>
         <if condition="$v.sex eq 1">
          <td>男</td>
         <else/>
          <td>女</td>
          </tr>      </foreach>  </table>    

四、特殊标签

  1、比较标签

eq  lt  gt  ngt等

<eq name='n' value='10'>等于10<else/>不是10</eq>

  2、范围标签

in 从某些值中挑选出一个

between 在某个范围内

<in name='n' value='1,2,3,4,5'>      {$n}在1,2,3,4,5这些数里面  <else/>不在1,2,3,4,5这些数里面  </in>   

<between name='n' value='1,10'>      {$n}在1-10之间  <else/>不在1-10之间  </between>   

  3、Present标签

  判断模版变量是否已经赋值。

<present name='n'>n有赋值<else/>n没有赋值</present>

  4、Empty标签判断模版变量是否为空。

  Define标签定义模版常量。

  Assign标签对模版变量进行赋值。


 

五、其他标签

建议在配置文件中修改左右定界符,修改配置文件。防止与css js变量冲突

‘TMPL_L_DELIN’->'<{‘,

‘TMPL_R_DELIN’->’>}’,


2.数组输出复制代码 代码如下:{$name[0]}
{$name[‘k2’]} {$name.k1}3.对象输出

复制代码
代码如下:{$name:k}//调用这个对象的成员属性K
{$name->k}//传统调用K方法二、系统变量复制代码
代码如下:{$Think.get.id}//在模板中调用系统变量,得到提供的id值

发表评论

电子邮件地址不会被公开。 必填项已用*标注