PHP Máscara CNPJ, CPF, Data e qualquer outra coisa

Opa!  php máscara

Escrevi uma função para aplicar máscara em campos/valores como cpf, cnpj, data, hora, coordenadas estelares e o que desejar.

 


<?

function mask($val, $mask)
{
 $maskared = '';
 $k = 0;
 for($i = 0; $i<=strlen($mask)-1; $i++)
 {
 if($mask[$i] == '#')
 {
 if(isset($val[$k]))
 $maskared .= $val[$k++];
 }
 else
 {
 if(isset($mask[$i]))
 $maskared .= $mask[$i];
 }
 }
 return $maskared;
}

?>

Exemplo de uso:


<?

$cnpj = "11222333000199";
$cpf = "00100200300";
$cep = "08665110";
$data = "10102010";

echo mask($cnpj,'##.###.###/####-##');
echo mask($cpf,'###.###.###-##');
echo mask($cep,'#####-###');
echo mask($data,'##/##/####');

?>

Saídas:
11.222.333/0001-99
001.002.003-00
08665-110
10/10/2010

A saída é exatamente como você definir com os “#”, você pode utilizar qualquer separador, qualquer caracter, ex:


<?

$data = "10102010";

echo mask($data,'##/##/####');
echo mask($data,'[##][##][####]');
echo mask($data,'(##)(##)(####)');

?>

Saídas:
10/10/2010
[10][10][2010]
(10)(10)(2010)

Exemplo esquisito que ninguém jamais utilizará:


<?

$hora = "021050";

echo mask($hora,'Agora são ## horas ## minutos e ## segundos');
echo mask($hora,'##:##:##');

?>

Saídas:
Agora são 02 horas 10 minutos e 50 segundos
02:10:50  (esse você vai usar, claro)

Enfim, desde que a quantidade de # seja igual a quantidade de números, ou seja  lá o que contiver a variável, porque não se limita apenas à números, poderia ser:


 <?

 $str = "adoleta";

 echo mask($str,'#-##-##-##');

 ?>

 

Saída: a-do-le-ta


<?

$valor = "100000";

echo mask($valor,'#.###,##');

?>

Sáida: 1.000,00

Pensou que era brincadeira o lance da coordenada estelar né ? tá bão!


<?

$coord_estelar = "10100505";
echo mask($coord_estelar,'p=(#.#,#.#,#.#,#.#)');

?>

Saída: p=(1.0,1.0,0.5,0.5)

É isso galera, sigam as estrelas! php máscara
abs

Comments

  1. By Edson

    Responder

  2. By ramon

    Responder

    • By Thiago

      Responder

      • By Rafael Clares

        Responder

        • By Thiago

          Responder

          • By Rafael Clares

  3. Responder

  4. By Jeová D Avila

    Responder

  5. By Fábio

    Responder

    • Responder

      • By Fábio

        Responder

        • Responder

  6. By Mateus

    Responder

  7. Responder

  8. Responder

  9. By Vinicius

    Responder

  10. Responder

  11. Responder

  12. Responder

  13. Responder

    • By Tiburcio

      Responder

  14. Responder

  15. By amixel

    Responder

  16. Responder

  17. Responder

  18. Responder

  19. Responder

  20. By JOAQUIM DA SILVEIRA MAIA

    Responder

Perguntas duplicadas ou cujo a resposta esteja nos comentários serão ignoradas.
Comentários com códigos serão ignorados(para isso, use o pastebin.com e informe aqui o link).
Faça sua pergunta e "aguarde" ser aprovada para aparecer no blog.
Aguarde sua resposta, ela não é em tempo real, tenha paciência!

Deixe seu comentário