截取英文字符串的函数:substr();
但是有个问题就是截取中文字符串时,一个中文相当于2个或者3个英文字符串的字节数,
解决办法:
1、用mb_substr()函数,它有第四个参数可以指定编码格式;
2、开启php.ini的中文字符串的扩展,即extension=php_mbstring.dll;这个扩展开启之后可以用Smarty模板引擎中的truncate调节器;
3、重新封装一个截取字符串的函数:
function mbsubstr( $str, $start, $len){
$strlen = $start + $len;
for( $i=$start; $i<$strlen; $i++ ){
if( ord( substr( $str, $i, 1)) > 0xa0){
if( charset == utf-8){ return substr( $str, $i, 3);}
elseif( charset == gb2312){ return substr( $str, $i, 2);}
}else{
return substr($str, $i, 1);
}
}
}