在PHP中将特定字符串123456789打印为特定格式12xxxxx89

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);

View this CodeViper

Code

<?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

?>

Result

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;
?>