fonte: http://blog.clares.com.br/php-mascara-cnpj-cpf-data-e-qualquer-outra-coisa/
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