1. 系统变量和原生标签
写入.env 文件的 配置,会默认的加上前缀PHP_,并且将其转换为大写
2 获取系统变量
在php中
$this->assign('assign','assign传递的内容');
// dump(Env::get('status'));
// session('name','ssss');
// cookie('email','132456@gmail.com');
return $this->fetch('index',[
'useremail' => '123456@gmail.com'
],[
'STATIC'=>'将页面所有STATIC替换成当前值的替换内容'
]);
在html中获取
{$assign}
<p><!-- 获取系统变量 -->
{$Think.server.HTTP_HOST}<br>
{$Think.session.name}<br>
{$Think.cookie.email}<br>
<!--获取get请求的url中的值 例如http://localhost/?id=123 -->
{$Think.get.id}<br>
<!--获取post请求的url中的值 例如http://localhost/ psot中 id=132 -->
{$Think.post.id}<br>
<!--获取request(包含上述请求)中的值 例如http://localhost/?id=123 -->
{$Think.request.id}<br>
<!-- 获取系统中常量 -->
<!--获取当前应用所在的目录-->
{$Think.const.APP_PATH}<br>
或者直接 .也可获取
{$Think.APP_PATH}<br>
3. 在html使用 原生PHP标记
使用 <?php /**php代码**/ ?>
4. tp中html 中 变量输出
{$email} 的md5加密为:--》 {$email|md5}<br>
{$email} 截取前7位为:--》 {$email|substr=0,7}<br>
{$email} 截取前7位为:--》 {$email|substr=###,0,7}<br>
函数调用 <br>
两种转换方式<br>
<!-- 函数调用fun($obj1,$obj2,$obj3....) 转成 {$obj1|fun=$obj2,$obj3...}-->
<!-- 函数调用fun($obj1,$obj2,$obj3....) 转成 {$obj1|fun=###,$obj2,$obj3...}
使用###占位, 位置不限
函数调用fun($obj1,$obj2,$obj3....) 转成 {$obj2|fun=$obj1,###,$obj3...}
-->
连续调用函数<br>
{$email} 的md5加密并转大写为:--》 {$email|md5|strtoupper}<br>
变量操作 运算
<p>a+b = {$a+$b}</p>
<p>a*b = {$a+$b}</p>
<p>++a = {++$a}</p>
<p>--a = {--$a}</p>
设置个默认值,若变量没被分配值,就会显示默认值
<p>{$email|default='123654@gmail.com'}</p>
5. 若在html中写的代码 ,不想被被tp 解析,使用 {literal} {/literal} 包住
例如
{literal}
{$email}
{/literal}
再就会显示
{$email}
字符串,而不会被解析成 123@gmail.com
6. tp 下 html模板中 的注释
1) {/* 这是view的注释 */} 这样的注释不会输出到html中
7. 模板 循环标签
{$list|dump}
<br>
一。{volist} 遍历
<?php
$empty = "<h1>这是空的显示</h1>>"
?>
或php标签
{php}
$empty = "<h1>这是空的显示</h1>>"
{/php}
<!-- offset 从哪开始遍历-->
<!-- length 遍历多少位-->
<!-- mod 与mod设置的值取余 -->
<!-- empty 如果list为空,就设置显示为字符串,不能包含html标签
但可以使用 empty="$emptyvalue" 可以设置为变量来实现
-->
<!-- key当前循环的次数,默认值为 i ,从0开始 -->
{volist name='list' id='data' offset='1' length='2' mod='2' empty='空' key='i'}
{$i} <br>
{$mod} <br>
{$data.name} <br>
<br>
{/volist}
二。{foreach} 遍历
<!--foreach 遍历 -->
{foreach $list as $vo}
<p>{$key} --> {$vo.name} : {$vo.email}</p>
{/foreach}
或
<!-- 默认{$key},也可以修改,例如 key='s' -->
{foreach name="list" item="v"}
<p>{$key} ---> {$v.name} : {$v.email}</p>
{/foreach}
三。 {for} 遍历
<!--默认是i,用 name ='index'来定义-->
<!-- step步进 -->
{for start='1' end='10' step='2'}
<p>{$i}</p>
{/for}