爱程序网

php字符串截取问题

来源: 阅读:

希望将一个字符串限长显示,如果该字符串超过一定长数,就截取前n个字符,后加省略号。但是在英文和汉字混合的情况下会出现如下问题: 

如果有这样一个字符串 
$str="这是一个字符串"; 
为了截取该串的前10个字符,使用 
if(strlen($str)>10) $str=substr($str,10)."…"; 
那么,echo $str的输出应该是"这是一个字…" 

假设 
$str="这是1个字符串"; 
这个串中包含了一个半角字符,同样执行: 
if(strlen($str)>10) $str=substr($str,10); 
由于原字符串$str的第10、11个字符构成了汉字“符”; 
执行串分割后会将该汉字一分为二,这样被截取的串就会发现乱码现象。 


请问这种问题如何解决?即要使过长字符串实现分割,又不能让它发生乱码?

复制代码代码如下:

相关文章列表: