如何用星号替换一些字符,除了前四个字符

时间:2017-07-17 04:12:14

标签: php string email

我想隐藏我的电子邮件地址中的某些字符,例如

当前添加: example@gmail.com
使用我的代码: *******@gmail.com
我想要exam***@gmail.com

我的代码:

function hide_mail($email) {
    $mail_part = explode("@", $email);
    $mail_part[0] = str_repeat("*", strlen($mail_part[0]));
    return implode("@", $mail_part);
}

echo hide_mail("example@gmail.com");

2 个答案:

答案 0 :(得分:1)

使用substr()即可。

<强> PHP

<?php        
    function hide_mail($email) {
        $new_mail = "";
        $mail_part1 = explode("@", $email);
        $mail_part2 = substr($mail_part1[0],4); // Sub string after fourth character.
        $new_mail = substr($mail_part1[0],0,4); // Add first four character part.
        $new_mail .= str_repeat("*", strlen($mail_part2))."@"; // Replace *. And add @
        $new_mail .= $mail_part1[1]; // Add last part.
        return $new_mail;
    }

    echo hide_mail("example@gmail.com");
?>

<强>输出

exam***@gmail.com

答案 1 :(得分:0)

您需要将$mail_part[0]分成第四个字符。

在分割的第二部分用*替换,然后再将三部分连接在一起。