" />
搜索

广东快乐十分开奖记录:九街 | 白开水的博客

写作即是思考!做一个有准备的人

最新热文章

博文分类

当前位置:黑龙江快乐十分网址>smarty技术>修改Smarty的变量调节器truncate无乱码截取中文

修改Smarty的变量调节器truncate无乱码截取中文

黑龙江快乐十分网址 www.t44y5.cn 网站的页面在展现时,为了美观,经常需要对一些标题的长度进行控制。在整个程序中,到处都是那忙碌的字符串截取函数,而且还可能出现中文乱码。用mb_substr()可以比较好的截取中文,但是它把中文和英文都按一个字符处理,截取的效果感觉不是太好。

如果你是用Smarty做表现层的话,可以用smarty的变量调节器truncate方法来控制字符串的长度,当然利用Smarty自己的truncate截取中文时,会出现乱码。我们可以改写它的truncate调节器,让它来帮我们截取字符串,达到一劳永逸的效果。

找到你的Smarty安装目录,打开plugins/modifier.truncate.php文件。你可以用下面的函数替换掉smarty自己的函数。

function smarty_modifier_truncate($string, $length = 80, $etc = '...',
                                    $break_words = false, $middle = false)
{
     if ($length == 0)
          return '';

      if (strlen($string) > $length) {
          $length -= min($length, strlen($etc));
          for($i = 0; $i < $length ; $i++) {
     $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
    }
    return $strcut.$etc;  
        
      } else {
          return $string;
      }
}

参数$length:为截取字符串的最大长度,默认为80字符,一个中文按2个字符计算;$etc:截取字符串时,自动附加在后面的符号。默认为(...);$break_words 本指为是否可以打断一个单词,在中文环境下,作用不大,在改写的方法中,后面两个参数不起什么作用。

最后说下使用,{$title|truncate:30:"..."} ,很简单不是?当然这30个字符的长度还包括(...),如果你不喜欢,可以自己修改上面代码中的一行。

该日志由九街发表在分类下,你可以至底部留下评论。

原创文章转载请注明:黑龙江快乐十分网址[黑龙江快乐十分网址]

您可能还会对这些文章感兴趣!

向右箭头向左箭头

返回顶部 黑龙江快乐十分网址

  • 中国质量提升高峰论坛暨2017“人民匠心奖”颁奖盛典 2018-07-25
  • 晋中市通报五起违反中央八项规定精神问题 2018-07-25
  • 【黑河天气】最新黑河今天天气,实时提供黑河气温、空气质量、24小时天气预报、生活指数查询 2018-07-25
  • 巢湖市第三届少儿器乐比赛圆满落幕 2018-07-24
  • 【大家谈】激励实干担当,谱写奋斗“进行曲” 2018-07-24
  • 庆祝中国人民解放军建军90周年大会在人民大会堂举行 2018-07-24
  • 员工持股计划再现大股东“兜底”:保本+年化收益10% 2018-07-24
  • 看了许魏洲的演唱会服装才知道他时尚资源有多少 2018-07-23
  • 为应对督察 江苏如皋一工厂违法掩埋危险废物 2018-07-23
  • 互联网+文化,浓了年味新了民俗 2018-07-23
  • 来自十多个国家的外国使节在京品民俗、过端午 2018-07-22
  • 追梦格林G4赛后曾拒绝与TT握手 2018-07-22
  • 正定--河北频道--人民网 2018-07-22
  • [大笑]精神心理科医生在等你…… 2018-07-21
  • 特朗普所谓交易的艺术,实质上是勒索的艺术。 2018-07-21
  • 303| 670| 240| 231| 278| 189| 47| 246| 720| 779|