PHP的另类字符截取方法,彻低解决乱码
用这种方式基本没乱码出现还支持不同的编码过来的字符串
比一般的截取函数简单多了
/**
* 字符串截取
*
* @param string $str 要截取字符串
* @param int $len 截取长度
* @param string $prefix 补充字符,如果截取了,则补充一个字符到后面,截取长度不包含这部分
* @param string $charset 编码
*
* @return string 截取后的字符串
*/
function cut_str_cn ($str , $len , $prefix='...' , $charset='utf-8')
{
/* 定义字符集 */
$arr['utf-8'] = "/||{2}|{3}/";
$arr['gb2312'] = "/|/";
$arr['gbk'] = "/|/";
$arr['big5'] = "/|(|/xa1-/xfe])/";
/* 字符放到数组内 */
preg_match_all($arr[$charset], $str, $match);
/* 截取 */
$result = implode("",array_slice($match, 0, $len));
return $length<count($match)?($result.$prefix):$result;
}
页:
[1]