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

推荐订阅源

Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Y
Y Combinator Blog
T
Tailwind CSS Blog
D
Docker
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
腾讯CDC
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
U
Unit 42
The Cloudflare Blog
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
爱范儿
爱范儿
Recent Announcements
Recent Announcements
博客园 - 聂微东
博客园 - 叶小钗
H
Help Net Security
MyScale Blog
MyScale Blog

博客园 - 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做同样的操作了。