Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro


HGIDC
Resultados 1 a 10 de 10

Tópico: Dúvda replace

  1. #1

    Avatar de Lucas S.
    Data de Ingresso
    Jun 2011
    Localização
    MU
    Idade
    27
    Posts
    70
    Agradecido
    15
    Agradeceu
    13
    Peso da Avaliação
    7

    Padrão Dúvda replace

    Fala galerinha bom dia , estou quebrando a cabeça aqui e nao estou conseguindo , nao sei muito de php rs



    Entao eu tenho essa função $account->getEMail()

    Ela pega o email do usuario logado , eu quero fazer assim

    contar tantas letras antes do @ e subistituir por **

    exemplo : [Somente usuários registrados podem vem os links. ]

    usando o exemplo acima ocultar 4 letras antes do @

    entao ficaria assim

    emailt****@email.com

    Alguem pode me ajudar?

  2. #2



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.249
    Agradecido
    2002
    Agradeceu
    533
    Peso da Avaliação
    30

    Padrão

    Facilita minha vida, vai... posta o script todo aqui
    Código PHP:
    <?php
        
    if(Weather::getState() == 'Rainy weather') {
            
    $this->removingLittleHorseFromRain();
        }

  3. #3

    Avatar de Lucas S.
    Data de Ingresso
    Jun 2011
    Localização
    MU
    Idade
    27
    Posts
    70
    Agradecido
    15
    Agradeceu
    13
    Peso da Avaliação
    7

    Padrão

    Código PHP:
    echo "<div class='tablestyletitle' >Informações da Conta</div>";
    echo 
    "<table class='tablestyle'  style='text-align: left;' width='100%'>"
        echo 
    "<tbody>";
        echo 
    "<tr><th width='150px'>Conta</th><td>".($_SESSION['name'])."</td></tr><tr><th>E-Mail</th><td>".substr_replace($var'******', -$p, -$p)." </td></tr><tr><th>Chave de recuperação</th><td>
      </td></tr><tr><th>POST Points</th><td>"
    .$account->getPremiumPoints()." </td></tr><tr><th>Status</th><td><font color=green>Você tem ".$account->getPremDays()." Dias de VIP restantes. </font></td></tr><tr><th>ID da Conta :</th><td>".($_SESSION['account_id'])."</td></tr></tbody></table>";
        echo 
    "</tbody>";
        echo 
    "</table>"

  4. #4



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.249
    Agradecido
    2002
    Agradeceu
    533
    Peso da Avaliação
    30

    Padrão

    Código PHP:
    $var $account->getEMail();
    $p strpos($var'@');
    echo 
    "<div class='tablestyletitle' >Informações da Conta</div>"
    echo 
    "<table class='tablestyle'  style='text-align: left;' width='100%'>";  
    echo 
    "<tbody>"
    echo 
    "<tr><th width='150px'>Conta</th><td>".($_SESSION['name'])."</td></tr><tr><th>E-Mail</th><td>".substr_replace($var'****'$p 4, ($p strlen($var)))." </td></tr><tr><th>Chave de recuperação</th><td> 
    </td></tr><tr><th>POST Points</th><td>"
    .$account->getPremiumPoints()." </td></tr><tr><th>Status</th><td><font color=green>Você tem ".$account->getPremDays()." Dias de VIP restantes. </font></td></tr><tr><th>ID da Conta :</th><td>".($_SESSION['account_id'])."</td></tr></tbody></table>"
    echo 
    "</tbody>"
    echo 
    "</table>"
    Só que já aviso que se o email tiver menos de 4 letras, como "ana@email.com", vai bugar e ficar algo como "ana@email.co****m".
    Última edição por Renato; 08-09-2015 às 11:31 AM.
    Código PHP:
    <?php
        
    if(Weather::getState() == 'Rainy weather') {
            
    $this->removingLittleHorseFromRain();
        }

  5. O Seguinte Usuário Agradeceu Renato Por este Post Útil:


  6. #5

    Avatar de Lucas S.
    Data de Ingresso
    Jun 2011
    Localização
    MU
    Idade
    27
    Posts
    70
    Agradecido
    15
    Agradeceu
    13
    Peso da Avaliação
    7

    Padrão

    Muito obrigado

    apenas modifiquei colocando o -7 e funcionou deixando o @

    Código PHP:
    ".substr_replace($var, '****', -7 - $p, ($p - strlen($var)))." 

  7. #6



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.249
    Agradecido
    2002
    Agradeceu
    533
    Peso da Avaliação
    30

    Padrão

    7 é muita coisa cara. Vai bugar com emails curtos.
    Código PHP:
    <?php
        
    if(Weather::getState() == 'Rainy weather') {
            
    $this->removingLittleHorseFromRain();
        }

  8. O Seguinte Usuário Agradeceu Renato Por este Post Útil:


  9. #7

    Avatar de Lucas S.
    Data de Ingresso
    Jun 2011
    Localização
    MU
    Idade
    27
    Posts
    70
    Agradecido
    15
    Agradeceu
    13
    Peso da Avaliação
    7

    Padrão

    Era so pra testar no meu email que era grande rs , eu coloquei - 4 , acho muito dificil alguem usar um email menos que 4 letras


    Mais uma vez obrigado.

  10. #8

    Avatar de navossoc
    Data de Ingresso
    Jan 2013
    Localização
    local
    Posts
    321
    Agradecido
    532
    Agradeceu
    199
    Peso da Avaliação
    8

    Padrão

    Códigozinho antigo que eu usava:

    Código:
    <pre>
    <?php
    		// Oculta o endereço de e-mail
    		function Mask($email)
    		{
    
    			$l = $m = 0;
    
    			for($i = 0; $i < strlen($email); $i++)
    			{
    				// Dois caracteres (mostram)
    				if($l >= 2)
    				{
    					if($l >= 5) // Três caracteres (ocultam)
    					{
    						$l = 0;
    					}
    					else
    					{
    						$email[$i] = "*";
    					}
    					$m++;
    				}
    				$l++;
    			}
    			
    			return $email;
    
    		}
    
    // tests
    echo Mask("a@a.com")."\n";
    echo Mask("a@ab.com")."\n";
    echo Mask("a@abc.com")."\n";
    echo Mask("ab@a.com")."\n";
    echo Mask("abc@a.com")."\n";
    echo Mask("ab@ab.com")."\n";
    echo Mask("abc@abc.com")."\n";
    echo Mask("rafael@dominio.com.br")."\n";
    ?>
    </pre>
    Resultado:
    Código:
    a@***om
    a@***co*
    a@***.c**
    ab***co*
    ab***.c**
    ab***.c**
    ab***bc***m
    ra***l@***in***co***r
    Deve servir né?

    []'s

  11. O Seguinte Usuário Agradeceu navossoc Por este Post Útil:


  12. #9

    Avatar de SCOFIELD
    Data de Ingresso
    Oct 2013
    Localização
    Pc
    Idade
    19
    Posts
    378
    Agradecido
    185
    Agradeceu
    132
    Peso da Avaliação
    0

    Padrão

    Você pode usar split também, para dividir os caracteres antes e depois do @.

  • #10

    Avatar de Sudeikis
    Data de Ingresso
    Mar 2014
    Localização
    Brazil
    Posts
    85
    Agradecido
    53
    Agradeceu
    37
    Peso da Avaliação
    4

    Padrão

    Como você não sabe o tamanho exato do e-mail, é melhor colocar pra ocultar metade dele e a função ficaria +/- assim:
    Código:
    function MailMask($address)
    {
    	$partial = explode('@', $address);
    	$maskLen = ceil(strlen($partial[0])/2);
    	$restLen = strlen($partial[0])-$maskLen;
    	$readable = substr($partial[0], 0, $restLen);
    	$asterisk = str_repeat('*', $maskLen);
    	return sprintf('%s%s@%s', $readable, $asterisk, $partial[1]);
    }
    Saída:
    [Somente usuários registrados podem vem os links. ] = impe****@gmail.com

    PS: Não testei, então se der algum erro é só dizer qual é.

  •  

     

    Informações de Tópico

    Usuários Navegando neste Tópico

    Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

    Marcadores

    Permissões de Postagem

    • Você não pode iniciar novos tópicos
    • Você não pode enviar respostas
    • Você não pode enviar anexos
    • Você não pode editar suas mensagens
    •