解决Smarty中truncate截取中文字符乱码问题
来源:互联网 发布:淘宝上卖的jbl音响 编辑:程序博客网 时间:2024/04/28 10:27
function smarty_modifier_truncate_utf($string, $length = 80, $etc = '...'){$result = '';$string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'utf-8');for($i = 0, $j = 0; $i < strlen($string); $i++){if($j >= $length){for($x = 0, $y = 0; $x < strlen($etc); $x++){if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0')){$x += $number - 1;$y++;}else{$y += 0.5;}}$length -= $y;break;}if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0')){$i += $number - 1;$j++;}else{$j += 0.5;}}for($i = 0; (($i < strlen($string)) && ($length > 0)); $i++){if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0')){if($length < 1.0){break;}$result .= substr($string, $i, $number);$length -= 1.0;$i += $number - 1;}else{$result .= substr($string, $i, 1);$length -= 0.5;}}$result = htmlentities($result, ENT_QUOTES, 'utf-8');if($i < strlen($string)){$result .= $etc;}return $result;}
新建modifier.truncate_utf.php,放入以上函数
将modifier.truncate_utf.php放在smarty的plugins目录下
模板中使用跟默认的没多大区别:<!--{$list.title|truncate_utf:10:"..":true}-->
0 0
- 解决Smarty中truncate截取中文字符乱码问题
- smarty截取中文字符乱码问题
- 关于Smarty插件中truncate截取中文乱码的解决方案
- smarty截取中文字符乱码问题的解决支持utf-8编码
- smarty截取中文字符乱码问题?gb2312-------utf-8
- 修改Smarty的变量调节器truncate无乱码截取中文
- 修改Smarty的变量调节器truncate无乱码截取中文
- smarty 字符truncate截取原理
- smarty截取中文乱码
- 解决QT中中文字符乱码问题
- 字符截取,解决中文的截取问题
- Web_PHP_PHPsubstr截取中文字符出现乱码解决;
- 解决php中截取字符串的中文乱码问题
- smarty中文乱码解决
- smarty模板截取字符串乱码问题完美解决```````
- 解决截取字符乱码的问题
- 改进smarty的truncate让他支持中文,截取中文
- smarty truncate截取字符串
- OPENTLD学习总结
- leaflet.js开源地图
- 2013.12.21
- FW-4.2- decide whether the two nodes have circle - JAVA VERSION - 2013年12月20日20:22:25
- jquery遍历json键值对
- 解决Smarty中truncate截取中文字符乱码问题
- 位运算
- window.opener
- C#面试题
- 短网址 dwz.cn
- 高性能、高流量Java Web
- Eclipse中设置背景颜色与字体大小和xml文件中字体大小调整
- 开关三极管的使用误区
- 邮件反垃圾技术之——64矩阵、频繁敏感词、蜜罐邮箱