background image

 
模板书写: 
{'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");

模板调用