惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
GbyAI
GbyAI
G
Google Developers Blog
Engineering at Meta
Engineering at Meta
月光博客
月光博客
腾讯CDC
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Martin Fowler
Martin Fowler
A
About on SuperTechFans
博客园 - 叶小钗

博客园 - Jaypei

archlinux中启用sshd [转] AT89C52资料 VirtualBox中安装PuppyLinux4 [转]比较全的Vim 中的正则表达式 luacurl的一个获得html的函数 [转]使用Mac OS X系统必须了解的10条命令 [原]Qt4.5中Plugins使用方法 用nuSOAP传递对象数组的问题终于解决 粗心导致的gsoap一个错误 MinGW环境使用gSOAP rdesktop中剪切板共享 [转]在Windows XP下用GCC 4.3.2编译Qt 4.4.3实战 Ubuntu下安装Postgresql 8.3 [原创]关于python的Singleton [转]如何讀取文字檔? (C/C++) (STL) 简单的python读写windows剪切板 关于SOAPpy传递对象参数调用WebService的问题总结 LinkedServer的用法 关于wxPython中多线程修改主界面
解决Smarty中trancate使用UTF8时中文乱码问题
Jaypei · 2008-11-18 · via 博客园 - Jaypei

2008-11-18 22:46  Jaypei  阅读(629)  评论()    收藏  举报

新建文件modifier.utruncate.php :

function smarty_modifier_utruncate($string, $length = 80, $etc = '...',   
                                  
$break_words = false, $middle = false)   
{   
    
if ($length == 0)   
        
return '';   
  
    
if (mb_strlen($string,'UTF-8'> $length) {   
        
$length -= min($length, mb_strlen($etc,'UTF-8'));   
        
if (!$break_words && !$middle) {   
            
$string = preg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $length+1,'UTF-8'));   
        }   
        
if(!$middle) {   
            
return mb_substr($string, 0, $length,'UTF-8'. $etc;   
        } 
else {   
            
return mb_substr($string, 0, $length/2,'UTF-8'. $etc . mb_substr($string, -$length/2,'UTF-8');   
        }   
    } 
else {   
        
return $string;   
    }   
}

 放到目录plugins_ext下, 然后在开头加上:

$smarty->plugins_dir = array("plugins", "plugins_ext");

遇到UTF-8的中文就可以使用utruncate做同样的操作了。