
Máscaras CNPJ, CPF, Data e outras
PHP Máscaras CNPJ, CPF, Data e outras
3676 Whallysson Avelino
Essa é 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
É isso galera, qualquer dúvida deixe nos comentários! =)
COMENTÁRIOS