Показване на 2-3 произволни букви от дума ?

Bummer

Registered
как мога да покажа 2-3 произволни букви от дума ?
Да речем думата "Bummer" да изкарва веднъж ето така:
B_m___r

при refresh - Bu_m___
и т.н. ?
 
Я да видим , нещо такова
$string = "Bummer";
for($i = 0;$i < strlen($string);$i++) {
$str_replace .= RAND(1,2) == 1 ? "_" : substr($string,$i,1);
}
echo $str_replace;
 
То добер, но целта ми е да вади 2-3 букви, а понякога вади 4.
от къде мога да определя, по колко букви да извежда ?
 
Ами в момента само за това се сетих
<?php
$string = "Bummer";
for($i = 0;$i < strlen($string);$i++) {
$max = explode("_",$str_replace);
$str_replace .= RAND(1,2) == 1 && count($max) < 4 ? "_" : substr($string,$i,1);
}
echo $str_replace;
?>
 
Код:
function rand_chars($str,$num) {
	//proverka da ne me chopli
	if($num > strlen($str) || $num <=0)
		return false;
	$used = array(); // masiv da durjim izpolzvanite bukvi
	$ret = ""; // novata duma
	$rand_index = 0; // promenliva za indexa
	for($i =0; $i< strlen($str); $i++) // syzdavame noviq string
		$ret .= "_";
	// inicializirame masiva, 6toto nz kak se prai v php
	for($i = 0; $i < strlen($str); $i++)
		$used[$i] = 0;
	
		//ciklim do kolkoto puti iskame
	for($j = 0; $j < $num; $j++) {
		do {
			$rand_index = rand(0,strlen($str)-1);
		   } while($used[$rand_index] != 0);
		$used[$rand_index] = 1;
	   $ret[$rand_index] = $str[$rand_index];
	   }
	  return $ret;
}
Код:
echo rand_chars("bummer",3);
Може да си я оптимизираш, но бачка доволно бързо :)
Дано коментаите са достатъчни.
 
Или пък така:
Код:
<?php
$string = "Bummer"; // думата
$random = rand(2,3); // колко букви да изкарва от думата

$words = str_split($string);
$replace = array_rand($words, $random);
foreach ($words as $key => $word) echo (in_array($key, $replace)) ? $word : '_';
?>
:?:
 

Горе