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

Alpha Servers
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
    34
    Posts
    66
    Agradecido
    14
    Agradeceu
    12
    Peso da Avaliação
    13

    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.099
    Agradecido
    2519
    Agradeceu
    492
    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
    34
    Posts
    66
    Agradecido
    14
    Agradeceu
    12
    Peso da Avaliação
    13

    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.099
    Agradecido
    2519
    Agradeceu
    492
    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 "[email protected]", vai bugar e ficar algo como "[email protected]****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
    34
    Posts
    66
    Agradecido
    14
    Agradeceu
    12
    Peso da Avaliação
    13

    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.099
    Agradecido
    2519
    Agradeceu
    492
    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
    34
    Posts
    66
    Agradecido
    14
    Agradeceu
    12
    Peso da Avaliação
    13

    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
    535
    Agradeceu
    199
    Peso da Avaliação
    15

    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("[email protected]")."\n";
    echo Mask("[email protected]")."\n";
    echo Mask("[email protected]")."\n";
    echo Mask("[email protected]")."\n";
    echo Mask("[email protected]")."\n";
    echo Mask("[email protected]")."\n";
    echo Mask("[email protected]")."\n";
    echo Mask("[email protected]")."\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
    26
    Posts
    283
    Agradecido
    175
    Agradeceu
    118
    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
    84
    Agradecido
    53
    Agradeceu
    37
    Peso da Avaliação
    11

    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
    •