php 每隔一个字符向字符串中添加一个随机字符[已关闭]

t0ybt7op  于 2022-10-30  发布在  PHP
关注(0)|答案(2)|浏览(182)

已关闭。此问题需要更多的focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

昨天关门了。
Improve this question
我如何将[A-Za-z0-9]/-中的随机字符每隔一个字符添加到字符串中?例如:

Hello_world!

变成了

H3e7l2l-o2_aWmocr9l/db!s

编辑:以下是我的尝试:

$char = substr(str_shuffle(str_repeat($charset, 11)), 0, 11);
$d = "Hello_World!";
$r = str_split($d, 2);
$added = implode($char, $r);
wnrlj8wa

wnrlj8wa1#

$str = 'Hello_world!';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/-';
$result = array_reduce(str_split($str),
  fn($carry, $item)=>$carry.=$item.$chars[rand(0,strlen($chars)-1)], '');
print_r($result);

str_split将您的输入字符串拆分为字符,然后array_reduce将它们与添加的随机字符重新组合。

vsnjm48y

vsnjm48y2#

<?PHP
  $str =  "Hello World!";

  $new_string = '';
  for($i =0; $i < strlen($str); $i++){ // loop through the string
     $new_string .= $str[$i]; // add character to new string
     $new_string .= getRandomCharacter(); // add the random character to new string
  }
  echo $new_string;

  function getRandomCharacter(){
     $random_characters = 'abcdefghijklmnopqrstuvwxyz'
                 .'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                 .'0123456789!@#$%^&*()';
    $index= rand(0, (strlen($random_characters)- 1) ); // generates random character index from the given set.
    return $random_characters[$index];
  }

?>

相关问题