首页 > 解决方案 > 将字符串拆分为 3 个随机长度的部分

问题描述

我有一个字符串,我想将它分成 3 个随机长度的部分(不关心字符串长度是目标)以获得 3 个字符串。

$mystring = "aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uc3RyLXNwbGl0LnBocA==";

当我尝试使用str_split()时,我总是必须手动设置每个字符串的字符数。

如果我计算字符串长度并将其除以 3,有时我会得到非整数。

$len = strlen($mystring);
$len = $len / 3;
$parts = str_split($mystring, $len);
print_r($parts);

标签: phprandomsplitsubstringexplode

解决方案


即使你想要随机,那么我假设你仍然不想要 0 长度的字符串。
我使用 1 和字符串长度之间的随机值(减去一些,以确保您不会用完字符)。

$mystring = "aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uc3RyLXNwbGl0LnBocA==";

$len=strlen($mystring);
$parts[] = substr($mystring, 0, $l[] = rand(1,$len-5));
$parts[] = substr($mystring, $l[0], $l[] = rand(1,$len-$l[0]-3));
$parts[] = substr($mystring, array_sum($l));

print_r($parts);

该代码根据先前的随机值来抓取部分字符串。
https://3v4l.org/v4nUF


推荐阅读