我想使用星号屏蔽电话号码的前导数字。
这样消息可以呈现为:
Your phone number ********8898 has been sent with a verification code.
如果你想遮盖中间部分:
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);
}
结果:
如果电话号码长度超过4,那么你可以这样做:
substr_replace($number, str_repeat('*', strlen($number)-4), 0, -4);
如果您还想显示第一位数字:
substr_replace($number, str_repeat('*', strlen($number)-5), 1, -4);
试试这个
$phone_number = '******' . substr( $phone_number, - 4);
echo $phone_number;
$email_new = $email_new[0].$email_new[1].$email_new[2].$email_new[3].'******' 。 substr( $email_new, - 7);
使用
preg_replace()
将允许您编辑未知长度字符串中除最后四个字符之外的所有字符。这适合作为各种值(如电话号码、信用卡号、社会保障号等)的实用函数。匹配后面至少有 4 个字符的任何字符,并将其替换为 *
。 编辑电子邮件地址的一部分可能会有点复杂。
代码:(演示)
$phone = '040783248898';
echo preg_replace('/.(?=.{4})/', '*', $phone);
// ********8898
你可以使用 substr :
$my_text = '12345678';
echo substr($my_text, 1); // 2345678
*******echo substr("9876543210", 6, 4);