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

时间:2014-11-07 04:24:54

标签: php string

我想以特定格式打印字符串,如:

<?php

$var  = "123456789";

echo $var; //expected output 12xxxxx89;
?>

想要显示字符串中的前两个和后两个字符,并以x格式显示其他字符。我该怎么办?

5 个答案:

答案 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)

查看 CodeViper

代码

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