smarty问题truncate截取中文字符老有乱码。高手指点啊 如题。有知道的指点谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是PHP的问题,truncate使用的是strlen/substr实现的所以不支持中文 我帮你解决了,写了一个Smarty的modifier插件,文件名是modifier.mb_truncate.php,放到Smarty的插件目录下文件内容是:<?phpfunction smarty_modifier_mb_truncate($string, $length = 80, $etc = '...', $encoding='UTF-8', $break_words = false, $middle = false){ if ($length == 0) return ''; if (mb_strlen($string, $encoding) > $length) { $length -= min($length, mb_strlen($etc)); if (!$break_words && !$middle) { $string = mb_ereg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $length+1)); } if(!$middle) { return mb_substr($string, 0, $length) . $etc; } else { return mb_substr($string, 0, $length/2) . $etc . mb_substr($string, -$length/2); } } else { return $string; }}?>使用的时候是这样的{'afdasbdf中国管理手段建立分级分类阿斯顿发了点积分历史记录法律发发牢骚'|mb_truncate:15:'...':'CP936'}结果是:afdasbdf中国...如果你的PHP文件编码是utf8,把上面的CP936换成UTF-8就可以了!!!PS. 这个插件是我修改内置的truncate得出的! {'afdasbdf中国管理手段建立分级分类阿斯顿发了点积分历史记录法律'|mb_truncate:15:'...':'CP936'} substr() 换成mb_substr() 就行了,要开启扩展.mb_string 请教PHP+ACCESS数据库的问题 关于CI框架 高手进 同一个页面发送多个cookie,只有最后一个生效?如 setcookie( 'bb', 1 );setcookie( 'cc', 2 );,只有cc有效? 尝试在smarty中使用新的方法进行有选择的缓存,基本成功.但还有一点问题,请各位帮忙,谢谢 求一个PHP正则 session文件产生太多,怎么办? 大家能谈谈各自的版本控制是怎么实现的吗? [求助]为什么在刷新时'form'会自动提交? 新手问题?望各位指点!!谢谢 怎样处理文件获得的时间??? php的cookie怪异问题 iframe中的传值如何传???
文件内容是:<?phpfunction smarty_modifier_mb_truncate($string, $length = 80, $etc = '...', $encoding='UTF-8',
$break_words = false, $middle = false)
{
if ($length == 0)
return ''; if (mb_strlen($string, $encoding) > $length) {
$length -= min($length, mb_strlen($etc));
if (!$break_words && !$middle) {
$string = mb_ereg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $length+1));
}
if(!$middle) {
return mb_substr($string, 0, $length) . $etc;
} else {
return mb_substr($string, 0, $length/2) . $etc . mb_substr($string, -$length/2);
}
} else {
return $string;
}
}?>使用的时候是这样的{'afdasbdf中国管理手段建立分级分类阿斯顿发了点积分历史记录法律发发牢骚'|mb_truncate:15:'...':'CP936'}
结果是:
afdasbdf中国...如果你的PHP文件编码是utf8,把上面的CP936换成UTF-8就可以了!!!PS. 这个插件是我修改内置的truncate得出的!