CodeBlogLogo CodeBlog

Máscaras CNPJ, CPF, Data e outras

Máscaras CNPJ, CPF, Data e outras

PHP Máscaras CNPJ, CPF, Data e outras

3097
Allain Estevam

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

Posts Relacionados!