php str_shuffle里面的中文为什么乱码

str_shuffle("里面的中文为什么乱码啊")那打乱中文应该怎么写?... str_shuffle("里面的中文为什么乱码啊")
那打乱中文应该怎么写?
展开
 我来答
chhuan123
推荐于2016-10-11 · 超过35用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:65.8万
展开全部
str_shuffle() 函数随机地打乱字符串中的所有字符。
注意,打乱的是字符串中的“字符”

一个字母等于一个字符
一个汉字等于2个字符
所以这个函数会把汉字撕成两半后再随机排序,这样的结果显示出来当然是看不懂的乱码了

没有现成的方法去处理这个问题,不晓得你要这么搞有什么用?自己写了个方法,只能解决全中文字符串随机排序的问题,
思路:
1、设法把中文字符串转换成数组,如果字符串中有英文字母或数字将被删除(因为这些只占一个字符,处理起来比较麻烦,假设你的中文字符串不需要存在这样的字符更好)
2、把数组元素重新排序
3、把排序后的数组再转成字符串

$str = "里面的中文为什么乱码啊";

//干掉非utf8中文字符
$str = preg_replace('/[^\x{4e00}-\x{9fa5}]/u', '', $str);

//每隔3个字符插入一个“,”,转换为数组使用,使用strlen()测出php中一个中文霸占了3个
$re = chunk_split($str,3,",");

//转换为数组
$re = explode(",",$re);
shuffle($re);//随机重新排序数组
$newstr = implode($re); //把数据转为字符串
echo $newstr;
百度网友fb47523
2019-12-28
知道答主
回答量:1
采纳率:0%
帮助的人:663
展开全部
a'd's'f's'da
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式