在php中,如何在字符串的2个字符后用叉替换字符串?
我有一封这样的电子邮件在php中,如何在字符串的2个字符后用叉替换字符串?,php,jquery,Php,Jquery,我有一封这样的电子邮件 $email="yourname@email.com"; $mob="9000000001"; 如何在php中获得所需的输出,如 email=youxxxx@gmail.com mob=900xxxxxx01 任何需要的帮助您都可以使用此功能: function obfuscate($data) { // for email addresses: do not obfuscate beyond at symbol $clear = strpos($da
$email="yourname@email.com";
$mob="9000000001";
如何在php中获得所需的输出,如
email=youxxxx@gmail.com
mob=900xxxxxx01
任何需要的帮助您都可以使用此功能:
function obfuscate($data) {
// for email addresses: do not obfuscate beyond at symbol
$clear = strpos($data, "@");
// for non-emails addresses: keep last two characters clear
if ($clear === false) $clear = max(0, strlen($data)-2);
// start hiding from 3rd character onwards, or earlier in some exceptional cases:
$hide = max(0, min($clear-1, 3));
return substr($data, 0, $hide) .
str_repeat("x", $clear - $hide) .
substr($data, $clear);
}
echo obfuscate("yourname@email.com"); // youxxxxx@email.com
echo obfuscate("9000000001"); // 900xxxxx01
代码中有一些保护措施(使用最小值和最大值函数)可以在极端情况下(如电子邮件非常短时)不产生不良结果”a@abc.com或者数字只有3位。获取字符串的第一部分,添加
xxxx
,获取字符串的最后一部分。连接