I want to print a string in specific format like :
<?php
$var = "123456789";
echo $var; //expected output 12xxxxx89;
?>
Want to show first two and last two characters from string and show others in x
format.How can i do that ?
Easy
echo substr_replace($var, str_repeat('x', max(strlen($var) - 4, 0)), 2, -2);
This should handle strings at or below 4 characters in length too.
Demo ~ eval.in
Links to functions:
echo substr($var,0,2).str_repeat('x',strlen($var)-4).substr($var,-2);
<?php
$var = '123456789';
echo "Original: $var
";
$number = max(strlen($var) - 4, 0); // Find length
$x = str_repeat("x", $number); // Get Number of time x
$final = substr_replace($var, $x, 2, -2); // Replace x from 2nd position to last -2 postion
echo "After:" . $final; // Final String
?>
Original: 123456789
--------------------
After:12xxxxx89
<?php
$var = "123456789";
echo maskCharacters($var); //expected output 12xxxxx89;
function maskCharacters($str){
$l = strlen($str);
if($l<5){
return $str;
}else{
return substr($str,0,2).createNumberOfX(strlen($str)-4).substr($str, $l-2,$l);
}
}
function createNumberOfX($c){
$x = '';
for($i=0;$i<$c;$i++){
$x .= "X";
}
return $x;
}
?>
<?php
$var = "123456789";
$strarry = str_split($var);
for($i = 2 ; $i< count($strarry)-2;$i++)
$strarry[$i] = "x";
$var = implode('',$strarry);
echo $var;
?>