我想以特定格式打印字符串,如:
<?php
$var = "123456789";
echo $var; //expected output 12xxxxx89;
?>
想要显示字符串中的前两个和后两个字符,并以x
格式显示其他字符。我该怎么办?
答案 0 :(得分:3)
易
echo substr_replace($var, str_repeat('x', max(strlen($var) - 4, 0)), 2, -2);
这应该处理长度为4个字符或以下的字符串。
演示〜 eval.in
功能链接:
答案 1 :(得分:1)
echo substr($var,0,2).str_repeat('x',strlen($var)-4).substr($var,-2);
答案 2 :(得分:1)
<?php
$var = '123456789';
echo "Original: $var \n";
$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
答案 3 :(得分:0)
<?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;
}
?>
答案 4 :(得分:0)
<?php
$var = "123456789";
$strarry = str_split($var);
for($i = 2 ; $i< count($strarry)-2;$i++)
$strarry[$i] = "x";
$var = implode('',$strarry);
echo $var;
?>