用x

时间:2017-09-16 09:41:02

标签: php

我正在尝试用X替换数字的前4位数字,例如:

$num= 1234567890

我希望输出显示如下:XXXX567890

我尝试过这个功能:

 $new = substr($num, 0, -4) . 'xxx';

但它只删除了最后4位数,所以该怎么办?

5 个答案:

答案 0 :(得分:4)

您可以在相反的情况下使用相同的

$num= 1234567890;
$new = 'xxxx' . substr($num, 4);
echo $new;

第二个参数告诉字符串和奇偶校验(正面或负面)的起点告诉方向。正数表示字符串右侧,负数表示字符串左侧。

http://php.net/manual/en/function.substr.php

答案 1 :(得分:2)

使用substr_replace功能:

$num = 1234567890;
print_r(substr_replace($num, 'XXXX', 0, 4));    // XXXX567890

答案 2 :(得分:1)

我认为这个有助于实现所需的输出。

解决方案1: Try this code snippet here

<?php
ini_set('display_errors', 1);
$num= 1234567890;
echo "XXXX".substr($num, 4);//concatenating 4 X and with the substring

解决方案2: Try this code snippet here

<?php
ini_set('display_errors', 1);
$num= 1234567890;
$totalDigits=4;
echo str_repeat("X", $totalDigits).substr($num, $totalDigits);// here we are using str_repeat to repeat a substring no. of times

输出: XXXX567890

答案 3 :(得分:1)

另一个解决方案是使用str_pad&#34;填充&#34;带有&#34; X&#34;的10个元素的字符串。

$num= 1234567890;

Echo str_pad(substr($num,4), 10, "X",STR_PAD_LEFT);

https://3v4l.org/tKtB7

或者如果字符串长度不总是10,请使用:

Echo str_pad(substr($num,4), strlen($num), "X",STR_PAD_LEFT);

答案 4 :(得分:0)

如果写了一个小函数来完成这样的任务。

function hide_details($str, $num = 4, $replace = 'x') {
    return str_repeat($replace, $num).substr($str, $num);
}
echo hide_details('1234567890');
相关问题