替换 PHP 字符串中的选定字符

Replacing selected characters in a PHP string

我有一个变量:

$var = '+44123456789';

我想用 X 替换 3 个字符,即从末尾开始的 3 个字符,所以 :

$var = '+44123XXX789';

我知道我可以使用 :

$var = substr($var, 0, 6) . 'XXX' . substr($var, -3);

但我遇到的问题是 $var 可以有不同的长度。

我如何设置 substr 以同样的方式在任意长度的变量上工作? (P.S。$var 的长度始终至少为 8 个字符。)

试试这个

$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

计算字符串长度,然后按如下所示处理子字符串

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

您可以通过索引访问字符串中的字符:

$var = '+44123456789';
$c = strlen($var)-6;
$var[$c++] = $var[$c++] = $var[$c++] = 'X';
echo $var;