如何使用星号字符屏蔽字符串的某些部分

时间:2017-05-26 11:45:44

标签: php laravel

我想以这种格式获得电话号码

您的电话号码******** 8898已发送验证码..

PHP

5 个答案:

答案 0 :(得分:3)

试试这个

$phone_number = '******' . substr( $phone_number, - 4);
echo $phone_number;

答案 1 :(得分:1)

如果您想遮盖中间部分:

private function stringToSecret(string $string = NULL)
{
    if (!$string) {
        return NULL;
    }
    $length = strlen($string);
    $visibleCount = (int) round($length / 4);
    $hiddenCount = $length - ($visibleCount * 2);
    return substr($string, 0, $visibleCount) . str_repeat('*', $hiddenCount) . substr($string, ($visibleCount * -1), $visibleCount);
}

结果:

  • 1 => 1
  • 12 => 12
  • 123 => 1 * 3
  • 1234 => 1 ** 4
  • 12345 => 1 *** 5
  • 123456 => 12 ** 56
  • 1234567 => 12 *** 67
  • 12345678 => 12 **** 78
  • ...

答案 2 :(得分:0)

你可以使用substr:

 $my_text = '12345678';

echo substr($my_text, 1);  // 2345678

答案 3 :(得分:0)

*******echo substr("9876543210", 6, 4);

答案 4 :(得分:0)

如果电话号码长度超过 4,那么您可以这样做:

substr_replace($number, str_repeat('*', strlen($number)-4), 0, -4);

如果您还想显示第一个数字:

substr_replace($number, str_repeat('*', strlen($number)-5), 1, -4);