PHP: как добавить случайный символ в строку в случайном положении

Как я могу добавить один случайный символ (0-9 или az или – или _) в случайном месте в строке.

Я могу получить случайную позицию, следуя:

$random_position = rand(0,5); 

Теперь, как я могу получить случайное число (от 0 до 9) ИЛИ случайный символ (от a до z) ИЛИ (-) ИЛИ (_)

и, наконец, как я могу добавить символ в указанную выше строку в вышеупомянутой случайной позиции.

Например, следующая строка:

 $string = "abc123"; $random_position = 2; $random_char = "_"; 

новая строка должна быть:

 "a_bc123" 

 $string = "abc123"; $random_position = rand(0,strlen($string)-1); $chars = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789-_"; $random_char = $chars[rand(0,strlen($chars)-1)]; $newString = substr($string,0,$random_position).$random_char.substr($string,$random_position); echo $newString; 

попробуй что-нибудь вроде этого

 <?php $orig_string = "abc123"; $upper =strlen($orig_string); $random_position = rand(0,$upper); $int = rand(0,51); $a_z = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; $rand_char = $a_z[$int]; $newstring=substr_replace($orig_string, $rand_char, $random_position, 0); echo 'original-> ' .$orig_string.'<br>'; echo 'random-> ' .$newstring; ?> 
 $string = 'abc123'; $chars = 'abcdefghijklmnopqrstuvwxyz0123456789-_'; $new_string = substr_replace( $string, $chars[rand(0, strlen($chars)-1)], rand(0, strlen($string)-1), 0 ); 

получить длину строки:

 $string_length = strlen($string);//getting the length of the string your working with $random_position = 2;//generate random position 

генерировать «случайный» характер:

 $characters = "abcd..xyz012...89-_";//obviously instead of the ... fill in all the characters - i was just lazy. 

получение случайного символа из строки символов:

 $random_char = substr($characters, rand(0,strlen($characters)), 1);//if you know the length of $characters you can replace the strlen with the actual length 

разбивая струну на 2 части:

 $first_part = substr($string, 0, $random_position); $second_part = substr($string, $random_position, $string_length); 

добавление случайного символа:

 $first_part .= $random_char; 

объединив их обратно:

 $new_string = $first_part.$second_part; 

это может быть не самый лучший способ, но я думаю, что он должен это сделать …

 // map of characters $map = '0123456789abcdefghijklmnopqrstuvwxyz-_'; // draw a random character from the map $random_char_posotion = rand(0, strlen($map)-1); // say 2? $random_char = $map[$random_char_posotion]; // 2 $str = 'abc123'; // draw a random position $random_position = rand(0, strlen($str)-1); // say 3? // inject the randomly drawn character $str = substr($str, 0, $random_position).$random_char.substr($str,$random_position); // output the result echo $str; // output abc2123