博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
smarty模板自定义变量
阅读量:5269 次
发布时间:2019-06-14

本文共 3613 字,大约阅读时间需要 12 分钟。

一、通过smarty方式调用变量调节器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns=
"http://www.w3.org/1999/xhtml"
>
<head>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
/>
<title>无标题文档</title>
</head>
 
<body>
 
 
<!--显示当前时间戳-->
<{
$smarty
.now}>
     
<!--调用调节器显示想要的时间格式-->
<{
$smarty
.now|date_format:
"%Y-%m-%d %H-%M-%S"
}>
 
</body>
</html>

  分别显示:

  1498791289

   2017-06-30 04-54-49

 格式:变量 |  变量调节器的名称 :参数  (竖线和冒号)

二、通过自定义方式调用变量

为什么要自己写呢?因为调用变量调节器需要自己去手册找到参数,不如自己写好直接调用。

1、写一个时间的变量调节器

(1)在plugin文件夹中新建一个文件:modifier.time.php

1
2
3
4
5
6
<?php
    
//用来格式化时间日期
function
smarty_modifier_time(
$str
){
    
return
date
(
"Y-m-d H:i:s"
,
$str
);
}
?>

 (2)test.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns=
"http://www.w3.org/1999/xhtml"
>
<head>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
/>
<title>无标题文档</title>
</head>
 
<body>
 
    
<!--调用自定义的变量调节器-->
    
<{
$smarty
.now|time}>
 
</body>
</html>

  显示效果:2017-06-30 05:06:53

什么时候用,就可以什么时候直接调取了,不用在找手册了呢

2、做一个截取字符串的变量调节器

(1)modifier.jiequ.php

1
2
3
4
5
6
7
8
9
10
11
<?php
 
function
smarty_modifier_jiequ(
$str
,
$cd
,
$sl
){
//  第一个参数:是传过来的变量,必须有
//  第二个参数:是截取多长
//  第三个参数:是要代替后面的省略符号
     
    
$str
=
substr
(
$str
,0,
$cd
);
    
return
$str
.
$sl
;
}
?>

 (2)12.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
    
header(
"content-type:text/html;charset=utf-8"
);
    
//引入smarty类
require
"../init.inc.php"
;
 
//数组类型
$arr
=
array
(
"one"
=>
"1111"
,
"two"
=>
"2222"
);
 
 
//注册变量
$smarty
->assign(
"ceshi"
,
"我叫你好你叫遇见他叫断桥这是真的么"
); 
 
 
$smarty
->assign(
"haha"
,
"12345678901234567890"
);
 
 
$smarty
->assign(
"nnn"
,
"abcdefghijklmnopqrstuvwxyz"
);
//显示
$smarty
->display(
"test.html"
);
?>

  

(3) test.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns=
"http://www.w3.org/1999/xhtml"
>
<head>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
/>
<title>无标题文档</title>
</head>
 
<body>
     
        
<{
$ceshi
|jiequ:
"12"
:
"..."
}>
             
        
<{
$haha
|jiequ:
"10"
:
"..."
}>
             
        
<{
$nnn
|jiequ:
"10"
:
"..."
}>
         
 
</body>
</html>

 分别显示:

我叫你好...				123456789012...				abcdefghijkl... 注意:汉字在php中相当于三个字符;所以当输出为汉字时要注意截取的长度:

 3、做一个与数据库相关的变量调节器(zhangsan------张三)

(1)12.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
header(
"content-type:text/html;charset=utf-8"
);
//先引入DBDA类
require
"DBDA.class.php"
;
//引入smarty类
require
"../init.inc.php"
;
 
//从订单表中找到用户名uid
$db
=
new
DBDA();
$sql
=
"select uid from orders"
;
$arr
=
$db
->query(
$sql
);
 
//将得到的uid注册
$smarty
->assign(
"one"
,
$arr
[0]);
 
$smarty
->display(
"test.html"
);
?>

  

  (2)modifier.uername.php

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function
smarty_modifier_username(
$str
)
{
    
//无法直接调用DBDA类,所以采用最原始的方法
    
$sql
=
"select name from users where uid='zhangsan'"
;
    
$db
=
new
mysqli(
"localhost"
,
"root"
,
""
,
"book"
);
    
$result
=
$db
->query(
$sql
);
 
    
$arr
=
$result
->fetch_row();
    
return
$arr
[0];
}
?>

(3) test.html 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns=
"http://www.w3.org/1999/xhtml"
>
<head>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
/>
<title>无标题文档</title>
</head>
 
<body>
     
        
<{
$one
[0]|username}>
         
 
</body>
</html>

 输出汉字:张三

 

可以做很多这样的自定义的调节器,便于以后调用~~

转载于:https://www.cnblogs.com/Liangbingbing/p/7153844.html

你可能感兴趣的文章
tcpcopy 流量复制工具
查看>>
vue和react的区别
查看>>
第十一次作业
查看>>
负载均衡策略
查看>>
微信智能开放平台
查看>>
ArcGIS Engine 中的绘制与编辑
查看>>
Oracle--通配符、Escape转义字符、模糊查询语句
查看>>
c# 文件笔记
查看>>
第一页 - 工具的使用(webstorm)
查看>>
Linux 进程资源用量监控和按用户设置进程限制
查看>>
D3.js 之 d3-shap 简介(转)
查看>>
制作满天星空
查看>>
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>
adidas crazylight 2018 performance analysis review
查看>>
typeset shell 用法
查看>>
python 之 循环语句
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
[转]ceph网络通信模块_以monitor模块为例
查看>>
HDOJ 1754 I Hate It(线段树基本操作)
查看>>