Очищенный и отфильтрованный номер мобильного телефона и адрес электронной почты в php

Я хочу санировать электронную почту и номер мобильного телефона в нечитаемом формате, чтобы конечный пользователь не мог их прочитать.

Для электронной почты abc.xyz@gmail.com будет продезинфицировать как a**************** Для мобильного 989898989898 будет продезинфицировать как 9*********

1 ответ

<?php

function sanitizeEmailAndMobile($text) {
    $banPhoneNo = $banEmailId = true;

    $text = htmlspecialchars($text, ENT_NOQUOTES);
    $text = str_replace("\n\r","\n",$text);
    $text = str_replace("\r\n","\n",$text);
    $text = str_replace("\n"," <br> ",$text);

    if(!empty($banPhoneNo)){
        preg_match_all('/\b[0-9]{3}\s*[-]?\s*[0-9]{3}\s*[-]?\s*[0-9]{4}\b/',$text,$phone);
        $phone = $phone[0];
        for ($i=0;$i < count($phone);$i++) {
            $text = str_ireplace(' '.$phone[$i].' ',' '.$phone[$i][0].str_repeat("*",strlen($phone[$i])-1).' ',' '.$text.' ');
        }
        $text = trim($text);
    }
    if(!empty($banEmailId)){
        preg_match_all('/[a-z0-9_\-\+\.]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i',$text,$email);
        $email = $email[0];
        for ($i=0;$i < count($email);$i++) {
            $text = str_ireplace(' '.$email[$i].' ',' '.$email[$i][0].str_repeat("*",strlen($email[$i])-1).' ',' '.$text.' ');
        }
        $text = trim($text);
    }
    return $text;
}

var_dump(sanitizeEmailAndMobile('8989898989'));
var_dump(sanitizeEmailAndMobile('abc.xyz@gmail.com'));

?>
Другие вопросы по тегам