模板书写:
{'param1'|functionName:'param2':'param3'}
php 函数原型:
echo
functionName('param1','param2','param3');
实例:
{'1234567'|
substr
:'1':'2'}
下面这个比较怪 和函数的参数顺序有关系
{'a'|
str_replace
:'A':'abcd'}
Smarty 调用自定义函数
调用自定义函数需要用到 register_function() 来注册
这里为大家举个例子,常见的字符串切割
函数如下
代码如下:
<?php
function
SmartyLen(
$params
){
extract(
$params
);
$len
=
strlen
(
$text
);
$max
=
$length
;
for
(
$i
=0;
$i
<
$length
;
$i
++){
$chr
=
substr
(
$text
,
$i
,1);
if
(ord(
$chr
)>0x80)
//字符是中文
{
$length
++;
$i
++;
$len
--;
}
}
$str
=
substr
(
$text
,0,
$length
);
if
(
$len
>
$max
)
$str
.="...";
Return
$str
;
}
注册函数
$smarty
->register_function('len',"SmartyLen");
模板调用