fork download
  1. <?php
  2.  
  3. $pattern = "/^([\w_]{2})(.+)([\w_]{2}@)/u";
  4. $replacement = "$1********$3";
  5.  
  6. echo "Demonstração com \"preg_replace\"";
  7. echo PHP_EOL;
  8. for($i = 1; $i <= 20; $i++) {
  9. $email = str_repeat("a", $i)."@teste.com";
  10. echo preg_replace($pattern, $replacement, $email);
  11. echo PHP_EOL;
  12. }
  13.  
  14. echo PHP_EOL.PHP_EOL;
  15. echo "Demonstração com \"preg_replace_callback\"";
  16. echo PHP_EOL;
  17.  
  18. function ocultarEmail($matches)
  19. {
  20. return $matches[1] .
  21. str_repeat("*", strlen($matches[2])) .
  22. $matches[3];
  23. }
  24.  
  25. for($i = 1; $i <= 20; $i++) {
  26. $email = str_repeat("a", $i)."@teste.com";
  27. echo preg_replace_callback($pattern, 'ocultarEmail', $email);
  28. echo PHP_EOL;
  29. }
Success #stdin #stdout 0.01s 82944KB
stdin
Standard input is empty
stdout
Demonstração com "preg_replace"
a@teste.com
aa@teste.com
aaa@teste.com
aaaa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com
aa********aa@teste.com


Demonstração com "preg_replace_callback"
a@teste.com
aa@teste.com
aaa@teste.com
aaaa@teste.com
aa*aa@teste.com
aa**aa@teste.com
aa***aa@teste.com
aa****aa@teste.com
aa*****aa@teste.com
aa******aa@teste.com
aa*******aa@teste.com
aa********aa@teste.com
aa*********aa@teste.com
aa**********aa@teste.com
aa***********aa@teste.com
aa************aa@teste.com
aa*************aa@teste.com
aa**************aa@teste.com
aa***************aa@teste.com
aa****************aa@teste.com