fork download
  1. <?php
  2.  
  3. $string = "Vendo moto usada, entre em contato 1188889999, moto@usada.com, www.moto.com, http://m...content-available-to-author-only...o.com";
  4.  
  5. // captura todos os emails da string
  6. preg_match_all('/[A-z0-9]+@[A-z0-9\.]+/', $string, $match_email);
  7.  
  8. // captura todos os sites da string
  9. preg_match_all('/(www\.|http:\/\/|https:\/\/)+[A-z0-9\.]+/', $string, $match_site);
  10.  
  11. // captura todos os telefones da string
  12. preg_match_all('/[0-9\-\(\)]+/', $string, $match_phone);
  13.  
  14.  
  15.  
  16. // altera os emails encontrados
  17. $emails = $match_email[0];
  18. foreach($emails as $email){
  19.  
  20. $newEmail = alterar_email($email);
  21. $string = str_replace($email,$newEmail,$string);
  22.  
  23. }
  24.  
  25.  
  26. // altera os telefones encontrados
  27. $phones = $match_phone[0];
  28. foreach($phones as $phone){
  29.  
  30. $newPhone = alterar_telefone($phone);
  31. $string = str_replace($phone,$newPhone,$string);
  32.  
  33. }
  34.  
  35.  
  36. // altera os telefones encontrados
  37. $sites = $match_site[0];
  38. $inicioSites = $match_site[1];
  39.  
  40. for($s = 0; $s < count($sites); $s++){
  41. $sewSite = alterar_site($sites[$s], $inicioSites[$s]);
  42. $string = str_replace($sites[$s],$sewSite,$string);
  43. }
  44.  
  45. echo $string;
  46.  
  47. // função que altera o email
  48. function alterar_email($email){
  49.  
  50. $newStringEmail = "";
  51. $partesEmail = explode("@", $email); // separar em duas partes
  52.  
  53. /*
  54. primeira parte do email
  55. "moto"
  56.  
  57. */
  58.  
  59. for($y = 0; $y < strlen($partesEmail[0]); $y++){
  60. if($y == 0) {
  61. $newStringEmail .= $partesEmail[0][0];
  62. } else {
  63. $newStringEmail .= "*";
  64. }
  65. }
  66.  
  67. $newStringEmail .= "@"; // adicionando o "@" que foi perdido
  68.  
  69. /*
  70.  
  71. segunda parte do email
  72. "usada.com"
  73.  
  74. */
  75.  
  76. $parts2 = explode(".", $partesEmail[1]);
  77. for($z = 0; $z < strlen($parts2[0]); $z++){
  78. $newStringEmail .= "*";
  79. }
  80.  
  81. for($x = 1; $x < count($parts2); $x++){
  82. $newStringEmail .= ".".$parts2[$x];
  83. }
  84. return $newStringEmail;
  85. }
  86.  
  87.  
  88. function alterar_site($site, $inicio){
  89.  
  90. $newStringSite = $inicio;
  91. $parteInicialSite = explode($inicio,$site);
  92. $partesSite = explode(".",$parteInicialSite[1]);
  93. for($x = 0; $x < strlen($partesSite[0]); $x++){
  94. $newStringSite .= "*";
  95. }
  96. for($y = 1; $y < count($partesSite); $y++){
  97. $newStringSite .= ".".$partesSite[$y];
  98. }
  99. return $newStringSite;
  100. }
  101.  
  102. function alterar_telefone($phone){
  103.  
  104. $num = 0;
  105. $newStringPhone = "";
  106. $positions = array(1,2,7,8); // posições que não serão substituidos
  107.  
  108. for($x = 0; $x < strlen($phone); $x++){
  109. if(is_numeric($phone[$x])){
  110. $num++;
  111. if(in_array($num,$positions)){
  112. $newStringPhone .= $phone[$x];
  113. continue;
  114. }
  115. $newStringPhone .= "*";
  116. continue;
  117. }
  118. $newStringPhone .= $phone[$x];
  119. }
  120. return $newStringPhone;
  121. }
Success #stdin #stdout 0.02s 23788KB
stdin
Standard input is empty
stdout
Vendo moto usada, entre em contato 11****99**, m***@*****.com, www.****.com, http://****.com