gpt4 book ai didi

php - 在PHP中部分隐藏电子邮件地址

转载 作者:IT王子 更新时间:2023-10-28 23:56:54 28 4
gpt4 key购买 nike

我正在构建一个简单的 friend /好友系统,当有人试图搜索新 friend 时,我想显示部分隐藏的电子邮件地址,以便在不透露实际细节的情况下了解用户可能是谁.

所以我希望 abcdlkjlkjk@hotmail.com 成为 abcdl******@hotmail.com

作为测试我写了:

<?php
$email = "abcdlkjlkjk@hotmail.com";

$em = explode("@",$email);
$name = $em[0];
$len = strlen($name);
$showLen = floor($len/2);
$str_arr = str_split($name);
for($ii=$showLen;$ii<$len;$ii++){
$str_arr[$ii] = '*';
}
$em[0] = implode('',$str_arr);
$new_name = implode('@',$em);
echo $new_name;

这行得通,但我想知道是否有更简单/更短的方法来应用相同的逻辑?也许像正则表达式?

最佳答案

这里有一些快速的东西:

function obfuscate_email($email)
{
$em = explode("@",$email);
$name = implode('@', array_slice($em, 0, count($em)-1));
$len = floor(strlen($name)/2);

return substr($name,0, $len) . str_repeat('*', $len) . "@" . end($em);
}

// to see in action:
$emails = ['"Abc\@def"@iana.org', 'abcdlkjlkjk@hotmail.com'];

foreach ($emails as $email)
{
echo obfuscate_email($email) . "\n";
}

echo :

"Abc\*****@iana.org
abcdl*****@hotmail.com

使用substr()str_repeat()

关于php - 在PHP中部分隐藏电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20545301/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com