php smarty truncate UTF8乱码问题处理办法
发布时间:2022-07-01 16:22:47 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php smarty truncate UTF8乱码问题解决办法,需要的朋友可以参考下。 估计不少玩smarty模板的小朋友都遇到过裁切乱码问题。特别是UTF8编码的。 就搞定了。 如果不好用可能是缓存导致,请速度删除templates_c下的缓存文件(小编搞的时候遇到
这篇文章主要介绍了php smarty truncate UTF8乱码问题解决办法,需要的朋友可以参考下。 估计不少玩smarty模板的小朋友都遇到过裁切乱码问题。特别是UTF8编码的。 就搞定了。 如果不好用可能是缓存导致,请速度删除templates_c下的缓存文件(小编搞的时候遇到缓存问题。)代码如下: <?php /** * Smarty plugin * @package Smarty * @subpackage plugins */ /** * Smarty truncate modifier plugin * * Type: modifier<br> * Name: truncate<br> * @param integer * @param string * @param boolean * @param boolean * @return string */ function smarty_modifier_truncate2( $string,$length = 80,$etc='...',$count_words = true ) { return $returnstr =substr_utf8($string, 0, $length).$etc; } function substr_utf8($str, $start=0, $length=-1, $return_ary=false) { $len = strlen($str);if ($length == -1) $length = $len; $r = array(); $n = 0; $m = 0; for($i = 0; $i < $len; $i++) { $x = substr($str, $i, 1); $i += 2; } $n++; }else { if (substr($a, 0, 1) == 0) { $r[] = substr($str, $i, 1); }elseif (substr($a, 0, 3) == 110) { $r[] = substr($str, $i, 2); $i += 1; }elseif (substr($a, 0, 4) == 1110) { $r[] = substr($str, $i, 3); $i += 2; }else { $r[] = ''; } if (++$m >= $length) { break; } } } return $return_ary ? $r : implode("",$r); } /* vim: set expandtab: */ ?> samrty的插件体系还是比较智能而且容易修改的。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |