php如何平均分割字符串 例分割为四部分
答案:3 悬赏:0 手机版
解决时间 2021-02-09 08:48
- 提问者网友:容嬷嬷拿针来
- 2021-02-08 14:37
php如何平均分割字符串 例分割为四部分
最佳答案
- 五星知识达人网友:醉吻情书
- 2021-02-08 15:36
首先你要确认该字符串的编码
如果是gbk的编码 则一个汉字占用2个字节 如果是utf-8编码的话 则占用3个字节。
$s='这是1个中英混合的abcd';
$s=iconv('gbk','utf-8',$s);
echo $len=strlen($s);//取得字符串长度 一个gbk汉字是占用2个字节 而utf-8是占3个字节
echo "
";
echo $mblen=mb_strlen($s,'utf-8');//获取单词的长度 一个汉字是1个字节
?>
明白这个原理 就不难了 下面俺来写个函数给你
$s='这是1个中英混合的abcd';
$s=iconv('gbk','utf-8',$s);//如果你确认你的字符串的编码是UTF-8就去掉这句
print_r(strSplit($s,4));
//字符串切割函数 str为字符串 num为每段分割为几
function strSplit($str,$num=4){
$len=mb_strlen($str,'utf-8');//获取字符串长度 每个汉字算1
$partNum=ceil($len/$num);
$arr=array();
for($i=0;$i<$partNum;$i++){
$begin=$i*$num;
$arr[]=iconv_substr($str,$begin,$num,'utf-8');
}
return $arr;
}
?>
如果是gbk的编码 则一个汉字占用2个字节 如果是utf-8编码的话 则占用3个字节。
$s='这是1个中英混合的abcd';
$s=iconv('gbk','utf-8',$s);
echo $len=strlen($s);//取得字符串长度 一个gbk汉字是占用2个字节 而utf-8是占3个字节
echo "
";
echo $mblen=mb_strlen($s,'utf-8');//获取单词的长度 一个汉字是1个字节
?>
明白这个原理 就不难了 下面俺来写个函数给你
$s='这是1个中英混合的abcd';
$s=iconv('gbk','utf-8',$s);//如果你确认你的字符串的编码是UTF-8就去掉这句
print_r(strSplit($s,4));
//字符串切割函数 str为字符串 num为每段分割为几
function strSplit($str,$num=4){
$len=mb_strlen($str,'utf-8');//获取字符串长度 每个汉字算1
$partNum=ceil($len/$num);
$arr=array();
for($i=0;$i<$partNum;$i++){
$begin=$i*$num;
$arr[]=iconv_substr($str,$begin,$num,'utf-8');
}
return $arr;
}
?>
全部回答
- 1楼网友:長槍戰八方
- 2021-02-08 17:12
应该是使用split这个函数吧~
- 2楼网友:有你哪都是故乡
- 2021-02-08 16:29
$str = 'asdhjiuygfrewsghbvfdfswe';
$len = strlen($str);
$part = ($len/4);
$arr = str_split($str, $part);
print_r($arr);
若想要平均分成4部分,必须得保证字符串的总长度是4的整数倍。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯