Smarty中截取中文乱码的解决方法
作者:谢諭宥 | 来源:互联网 | 2013-06-25 10:58
Smarty中截取中文乱码的解决方法,修改Smarty的变量调节器truncate无乱码截取中文。在整个程序中,到处都是那忙碌的字符串截取函数
Smarty中截取中文乱码的解决方法,修改Smarty的变量调节器truncate无乱码截取中文。在整个程序中,到处都是那忙碌的字符串截取函数,而且还可能出现中文乱码。用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个字符的长度还包括(...),如果你不喜欢,可以自己修改上面代码中的一行。
推荐阅读
本文详细介绍了暂估入库的会计分录处理方法,包括账务处理的具体步骤和注意事项。 ...
[详细]
蜡笔小新 2024-12-28 12:26:30
本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ...
[详细]
蜡笔小新 2024-12-28 12:22:34
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
本文将详细解读郑州大学作为一所位于河南省的211和双一流B类高校,在全国211高校中的地位与排名,帮助高三学生更好地了解这所知名学府的实力与发展前景。 ...
[详细]
蜡笔小新 2024-12-28 10:08:34
本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ...
[详细]
蜡笔小新 2024-12-28 09:49:42
本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ...
[详细]
蜡笔小新 2024-12-28 09:35:00
本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ...
[详细]
蜡笔小新 2024-12-28 09:10:26
本资源汇集了常用的插件和贴片三极管、MOS管以及部分LDO的封装,涵盖TO和SOT系列。所有封装均配有高质量的3D模型,共计96种,满足日常设计需求。 ...
[详细]
蜡笔小新 2024-12-28 09:05:19
在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ...
[详细]
蜡笔小新 2024-12-28 08:20:07
本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ...
[详细]
蜡笔小新 2024-12-28 02:40:28
本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ...
[详细]
蜡笔小新 2024-12-27 21:20:10
近期,小红书对MCN机构的入驻要求进行了调整,明确要求MCN机构在入驻时需缴纳20万元人民币的保证金。此举旨在进一步规范平台内容生态,确保社区的真实性和用户体验。 ...
[详细]
蜡笔小新 2024-12-27 20:42:02
本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ...
[详细]
蜡笔小新 2024-12-27 20:40:29
本文将介绍2023年动物餐厅中快速赚取小鱼干的有效方法,帮助玩家更轻松地积累资源。 ...
[详细]
蜡笔小新 2024-12-27 20:33:20
This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ...
[详细]
蜡笔小新 2024-12-27 19:58:25