gpt4 book ai didi

php真正的多字节字符串随机播放功能?

转载 作者:行者123 更新时间:2023-12-04 03:12:47 24 4
gpt4 key购买 nike

我对多字节字符串有一个独特的问题,需要能够以一定程度的随机性随机排列 PHP 中的长 UTF-8 编码多字节字符串,而不会丢失、丢失或重复任何字符。

在 str_shuffle 下的 PHP 手册中,有一个多字节函数(第一个用户提交的函数)不起作用:如果我使用一个字符串,例如字符串长度为 120 的所有日文平假名和片假名字符,我返回了一个 119 个字符或 118 个字符的字符串。有时我会看到重复的字符,即使原始字符串中没有它们。所以这不起作用。

为了使这更复杂,如果可能的话,我还需要包括日语 UTF-8 换行符、换行符和标点符号。

任何有使用 UTF-8 mb 字符串处理多种语言经验的人都可以帮忙吗? PHP 是否有任何内置函数来执行此操作? str_shuffle 正是我想要的。我只需要它也能处理多字节字符。

非常感谢!

最佳答案

尝试使用 mb_strlen 拆分字符串和 mb_substr创建一个数组,然后使用 shuffle在再次将其重新组合在一起之前。 (编辑:正如@Frosty Z 的回答中所展示的那样。)

来自 PHP 交互式提示的示例:

php > $string = "Pretend I'm multibyte!";
php > $len = mb_strlen($string);
php > $sploded = array();
php > while($len-- > 0) { $sploded[] = mb_substr($string, $len, 1); }
php > shuffle($sploded);
php > echo join('', $sploded);
rmedt tmu nIb'lyi!eteP

您需要确保在适当的地方指定编码。

关于php真正的多字节字符串随机播放功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5411060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com