php如何平均分割字符串 例分割为四部分

忘记说了字符为中英混合的... 忘记说了 字符为中英混合的 展开
 我来答
tuifeicmp
推荐于2016-11-30 · TA获得超过359个赞
知道小有建树答主
回答量:768
采纳率:53%
帮助的人:230万
展开全部
首先你要确认该字符串的编码
如果是gbk的编码 则一个汉字占用2个字节 如果是utf-8编码的话 则占用3个字节。
<?
$s='这是1个中英混合的abcd';
$s=iconv('gbk','utf-8',$s);
echo $len=strlen($s);//取得字符串长度 一个gbk汉字是占用2个字节 而utf-8是占3个字节
echo "<br>";
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;
}
?>
bd_fengzhenbo
2012-04-26 · 超过10用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:36.5万
展开全部
$str = 'asdhjiuygfrewsghbvfdfswe';
$len = strlen($str);
$part = ($len/4);
$arr = str_split($str, $part);
print_r($arr);

若想要平均分成4部分,必须得保证字符串的总长度是4的整数倍。
更多追问追答
追问
我的字符串里有中英文怎么办呢?
追答
这个我没试,如果是那样那就太不确定了,一个汉字(utf-8)3个字节,gb2312  好像是2个字节。那就不好弄了。好像是没有那样的函数,都是英文的就是我说的那种情况,你可以试试中英混合的,那样可能会出现乱码的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不笑不舒服
2012-04-26 · TA获得超过277个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:118万
展开全部
应该是使用split这个函数吧~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式