UTF8字符截取类

#1 lintou

分享我的UTF8字符截取类

支持中英文两种字符长度的截取,对UTF8文本支持非常好。

用法:
1. 把msubstr放到sp框架的Extensions目录下,
2. 在你的控制器或者其他地方使用:

$myword = "殷勤移植地,曲槛小栏边。共约重芳日,还忧不盛妍。阻风开步障,乘月溉寒泉。谁料花前后,蛾眉却不全。失却烟花主,东君自不知。清香更何用,犹发去年枝。"; // 待截取的字符串
$cutword_en = spClass("msubstr")->cut($myword, 10, "..."); // 截取英文字符计算的10个字符,每个汉字 = 三个英文字符
$cutword_cn = spClass("msubstr")->mcut($myword, 10, "..."); // 截取中文文字符计算的10个字符,一个汉字 = 一个英文字符

2009-12-26 09:06:09

#2 setlt

有一种品德叫做支持,支持楼主。

2009-12-26 15:42:39

#3 jake

简单易用,挺不错的东西

2009-12-27 10:01:35

#4 lintou

:handshake

2009-12-28 10:10:46

#5 redguan

不好用,中英文混合的字符时不准备了。

2010-04-22 17:30:07

#6 azwl

其实php已经为我们做好了
string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )
如:
$t='asd哦人他啊爱的332 ';
echo  mb_substr($t, 2, 6, 'utf8');

2010-04-22 21:50:22

#7 peter

回复 6 azwl


    对头

2010-07-05 16:27:41

#8 yuyu775

其实php已经为我们做好了
string mb_substr ( string $str , int $start [, int $length [, string $encodi ...
azwl 发表于 2010-4-22 21:50
关键是在SMARTY中应用!

2010-08-15 15:05:11

#9 gnuser

试试<{$string|truncate:100}>,吧

2011-05-24 12:08:04

#10 gnuser

如果在控制器中未截取,在输出页面中才截取的话就无法使用了。

2011-06-08 02:17:15

#11 小子210

支持楼主!

2011-11-22 17:54:13

#12 ˋ﹫._│噺

这个中英混合该怎么算?!那个mb_substr用不到啊,只能用substr,可是这样就截不了utf8的中文字符了..

2012-04-06 10:17:38

#13 jake

ˋ﹫._│噺 发表于 2012-4-6 10:17
这个中英混合该怎么算?!那个mb_substr用不到啊,只能用substr,可是这样就截不了utf8的中文字符了.. ...
上面的类就是为了在没有mb_substr情况下对UTF8字符截取的功能

2012-04-06 22:51:30

#14 ˋ﹫._│噺

jake 发表于 2012-4-6 22:51
上面的类就是为了在没有mb_substr情况下对UTF8字符截取的功能
谢谢.用别的方法解决了,这个类感觉还是不太好用.

2012-04-19 15:05:26

#15 lintou

ˋ﹫._│噺 发表于 2012-4-19 15:05
谢谢.用别的方法解决了,这个类感觉还是不太好用.
挺好的啊

2012-04-20 00:10:25