我有一个变量:
$var = '+44123456789';
我想替换3个字符,最后是X字符的3个字符,所以:
$var = '+44123XXX789';
我知道我可以使用:
$var = substr($var, 0, 6) . 'XXX' . substr($var, -3);
但我遇到的问题是$var
可能有不同的长度。
我如何设置substr以使其以相同的方式工作,但是在任何长度的变量上? (P.S。$var
总是至少8个字符。)
答案 0 :(得分:0)
试试这个
$var = '+44123123789';
echo substr($var, 0, strlen($var) - 6) . 'XXX' . substr($var, -3);//+44123XXX789
$var = '+44123123789111';
echo substr($var, 0, strlen($var) - 6) . 'XXX' . substr($var, -3);//+44123123XXX111
请参阅demo here
答案 1 :(得分:0)
计算字符串长度,然后处理下面给出的substr
$var = '+44123456789';
$len=strlen($var);
if($len>10){
$len=$len-6;
$var = substr($var, 0, $len) . 'XXX' . substr($var, -3);}
elseif($len==10){
$var = substr($var, 0, 6) . 'XXX' . substr($var, -3);
}
echo $var;
答案 2 :(得分:0)
您可以通过索引访问字符串中的字符:
$var = '+44123456789';
$c = strlen($var)-6;
$var[$c++] = $var[$c++] = $var[$c++] = 'X';
echo $var;