-
- 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");
模板调用
{len text="测试下" length="1"} //注意这里的text和length其实是函数里的2个参数函数的参数必须要以函数内部变量名一致,其实传回去的的是个数组,在函数里用extract($params);把数组中的变量导入到当前的符号表。
|