《Php笔记3.4》ThinkPHP 模板(上)——变量,函数,包含
本课包含变量输出、函数用法、include 文件包含机制和模板替换规则
ThinkPHP 模板:变量输出
本课时讲解 ThinkPHP 模板自定义变量和系统变量的输出,以及自定义模板解析的界定符。
变量输出和默认值输出:
控制器IndexController.class.php:
1 <?php 2 namespace Views\Controller; 3 use Think\Controller; 4 class IndexController extends Controller { 5 public function index(){ 6 $username = '科比'; 7 $email = 'kobe@qq.com'; 8 $age = 37; 9 10 $people = array( 11 'user'=>$username, 12 'mail'=>$email, 13 'age'=>$age 14 ); 15 $this->assign('people', $people); 16 $this->assign('user', $username); 17 $this->assign('mail', $email); 18 $this->assign('age', $age); 19 20 $this->display(); //渲染视图 21 22 // $fetchContent = $this->fetch(); 23 // $fetchContent = str_replace('qq', '163', $fetchContent); 24 // 25 // $this->show($fetchContent); 26 } 27 }
模板文件:
<tr> <th scope="row">1</th> <td>{$user}</td> <td>{$mail}</td> <td>{$age}</td> <td>{$mobile|default="没有号码"}</td> </tr> <tr> <th scope="row">2</th> <td>{$people.user}</td> <td>{$people.mail}</td> <td>{$people.age}</td> <td>{$mobile|default="没有号码"}</td> </tr>
assgin一个变量或数组变量,模板中用界定符+变量名显示 没有此变量时输出default。
系统变量输出: 模板文件中
<td>{$Think.server.DOCUMENT_ROOT}</td>
使用运算符: 模板文件中
<td>{$age-1}</td> <td>{$people['age']-1}</td>
自定义界定符: config.php中
'TMPL_L_DELIM' => '{{', 'TMPL_R_DELIM' => '}}'
ThinkPHP 模板:使用函数
本课时讲解 ThinkPHP 模板中函数的用法,使用简单函数的几种方式,如变量是否是第一个参数的情形,如何嵌套使用多个函数,当函数逻辑复杂的时候如何回归原生PHP等。
<!-- 函数嵌套,第三个函数用###占位符 在=号后面加参数 --> <td>{$user|str_replace='k', 'r', ###|strtoupper}</td>
<!-- 使用php函数,如果是第一个变量不用写。更可以自定义函数,使用更加灵活 --> <td>{$mail|strtoupper}</td>
<!-- 使用原生php --> <td>{:strtoupper(str_replace('qq','php',$mail))}</td>
ThinkPHP 模板:包含文件和模板替换
本课时讲解 ThinkPHP 模板中包含其他文件的几种方式,以及通过模板替换统一定义一些通用值。
__ROOT__:网站的主页
__APP__:当前应用的URL
__SELF__:当前网页的网址
__PUBLIC__:公共资源目录
包含文件:
当前主题default下新建一个Public目录,存放公共模板文件,
Index/index.html:
<include file="Public/head"/> <include file="Public/nav" home="主页"/>
include包含的用法,可附带参数传递,在被包含的文件中用[参数]来显示:
Public/nav.html:
<li class="active"> <a href="#">[home]</a> </li>
此时,访问页面,[home]就显示成“主页”了
导入资源文件:
这个有很大用嘛?直接些html也很方便啊...,略~
自定义模板替换规则:
设置配置项,config.php:
'TMPL_PARSE_STRING' => array( '__CDN__'=>'./Cdn' )