- substr: documentation ( source)
- str_repeat: documentation ( source)
- array_slice: documentation ( source)
- end: documentation ( source)
- floor: documentation ( source)
- implode: documentation ( source)
- explode: documentation ( source)
<?php
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', 'cal(foo\@bar)@iamcal.com'];
foreach ($emails as $email)
{
echo obfuscate_email($email) . "\n";
}