PHP之随机截取汉字

来源:互联网 发布:sina邮箱端口imap 编辑:程序博客网 时间:2024/05/17 20:22

一个汉字会因为编码不同,占的字符数量会不同,会是2或者3个字符!
<\?php
function getH($str){
// 利用preg_split函数,将汉字字符串拆分成数组,第一个参数是正则匹配,必须加上u,因为是utf8编码
// 这里不能使用substr或者mb_substr等,因为这些方法是针对字符有效的,汉字占2或者3个字符
$str = preg_split(‘//u’, $str, -1, PREG_SPLIT_NO_EMPTY);

            // 利用shuffle函数,打乱汉字数组            // 不能使用str_shuffle函数,因为那个是打乱字符的            shuffle($str);            // 从数组中截取前4个元素,得到的就是一个汉字数组            $str = array_slice($str, 0,4);            // implode:将数组拼凑成字符串            $str = implode('', $str);               return  $str;

}

$str = ‘游乐儿浪漫樱花王锦胜’;
getH($str);
?>
以上方法是固定的截取长度,只是随机的把汉字字符串打乱截取;

总结

一、中文截取:mb_substr()

mb_substr( $str, $start, $length, $encoding )

$str,需要截断的字符串
$start,截断开始处,起始处为0
$length,要截取的字数
$encoding,网页编码,如utf-8,GB2312,GBK

二、获取中文长度:mb_strlen()

mb_strlen( $str, $encoding )

$str,要计算长度的字符串
$encoding,网页编码,如utf-8,GB2312,GBK