Smarty创建自变量调节器

之前已经提到过自变量调节器,就是对变量修饰的

比如{$a|truncate:5}

但是呢,truncate对中文支持并不友好,在php汉子是占3个字节的,那么截取字符串truncate:3 6 9  必须为3的倍数,使用非常不便

那么我们可以自己创建一个自变量调节器truncate_d 来解决此问题

 

1. 首先在smarty模板引擎的libs\plugins目录中创建以modifler.开始的变量调节器文件

直接复制modifier.truncate.php改名即可。

 

2. 赋值以下代码保存

<?php

function smarty_modifier_truncate_d($string, $length = 80, $etc = '...'){
    if(mb_strlen($string) > $length){
        $str = mb_substr($string, 0, $length, 'utf-8').$etc;
    }else{
        $str = mb_substr($string, 0, $length, 'utf-8');
    }

    return $str;
}

?>

 

3. 测试结果

在index.php定义变量

$smarty->assign('a1','我很爱编程');

4. 在html文件中测试

{$a1|truncate_d:4}

5.输出结果

我很爱编...

 

posted @ 2015-12-09 19:27  天津饭2015  阅读(180)  评论(0编辑  收藏  举报