php máscara cnpj, cpf, data e qualquer outra coisa « rafael clares

8
R afael Clares S tay updated via RSS PHP Máscara CNPJ, CPF, Data e qualquer outra coisa Publicado: novembro 12, 2010 em PHP 2 7 Opa! Escrevi uma função para aplicar máscara em campos/valores como cpf, cnpj, data, hora, coordenadas estelares e o que desejar. É bem simples, estou sem sono e resolvi escrever algo, é eu gosto de escrever aqui huahuha. Quer ver o script e eu aqui com papo de sonâmbulo… então tá! Exemplo de uso: 01 <? 02 03 function mask($val, $mask) 04 { 05 $maskared = ''; 06 $k = 0; 07 for($i = 0; $i<=strlen($mask)-1; $i++) 08 { 09 if($mask[$i] == '#') 10 { 11 if(isset($val[$k])) 12 $maskared .= $val[$k++]; 13 } 14 else 15 { 16 if(isset($mask[$i])) 17 $maskared .= $mask[$i]; 18 } 19 } 20 return $maskared; 21 } 22 23 ?> 01 <? 02 03 $cnpj = "11222333000199"; 04 $cpf = "00100200300"; 05 $cep = "08665110"; 06 $data = "10102010"; 07 08 echo mask($cnpj,'##.###.###/####-##'); 09 echo mask($cpf,'###.###.###-##'); 10 echo mask($cep,'#####-###'); 11 echo mask($data,'##/##/####'); A bout these ads ( ) PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-... 1 de 8 18/10/2012 08:37

Upload: charlesaraujo

Post on 03-Aug-2015

288 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares

Rafael Clares

Stay updated via RSS

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

Publicado: novembro 12, 2010 em PHP27Opa!

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

É bem simples, estou sem sono e resolvi escrever algo, é eu gosto de escrever aqui huahuha.Quer ver o script e eu aqui com papo de sonâmbulo… então tá!

Exemplo de uso:

01 <?0203 function mask($val, $mask)04 {05 $maskared = '';06 $k = 0;07 for($i = 0; $i<=strlen($mask)-1; $i++)08 {09 if($mask[$i] == '#')10 {11 if(isset($val[$k]))12 $maskared .= $val[$k++];13 }14 else15 {16 if(isset($mask[$i]))17 $maskared .= $mask[$i];18 }19 }20 return $maskared;21 }2223 ?>

01 <?0203 $cnpj = "11222333000199";04 $cpf = "00100200300";05 $cep = "08665110";06 $data = "10102010";0708 echo mask($cnpj,'##.###.###/####-##');09 echo mask($cpf,'###.###.###-##');10 echo mask($cep,'#####-###');11 echo mask($data,'##/##/####');

About these ads ( )

PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-...

1 de 8 18/10/2012 08:37

Page 2: PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares

Saídas:11.222.333/0001-99001.002.003-0008665-11010/10/2010

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

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

Exemplo esquisito que ninguém jamais utilizará:

Saídas:Agora são 02 horas 10 minutos e 50 segundos02: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 contivera variável, porque não se limita apenas à números, poderia ser:

Saída: a-do-le-ta

1213 ?>

1 <?23 $data = "10102010";45 echo mask($data,'##/##/####');6 echo mask($data,'[##][##][####]');7 echo mask($data,'(##)(##)(####)');89 ?>

1 <?23 $hora = "021050";45 echo mask($hora,'Agora são ## horas ## minutos e ## segundos');6 echo mask($hora,'##:##:##');78 ?>

1 <?23 $str = "adoleta";45 echo mask($str,'#-##-##-##');67 ?>

1 <?23 $valor = "100000";45 echo mask($valor,'#.###,##');67 ?>

PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-...

2 de 8 18/10/2012 08:37

Page 3: PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares

Sáida: 1.000,00

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

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

É isso galera, sigam as estrelas!abs

Comentários

Adriano Aidar disse:novembro 12, 2010 às 1:19 pmNossa muito loko simples e direto, já tinha visto um código parecido mais esse é curto e grossodiret ao ponto muito bom.

Comentar

1.

Marcelo Souza disse:novembro 25, 2010 às 6:33 pmBem bacana esta dica, já usei e após algumas adaptações funcionou bem.Valeu!

Comentar

2.

Raphael disse:dezembro 2, 2010 às 8:27 pmRealmente é muito bom. Venho acompanhando seu blog à algumas semanas e gostaria deelogia-lo, pois está muito bem organizado ^^

Bom, te vejo enquando minha saga para aprender JQuery continua :D

Comentar

3.

1 <?23 $coord_estelar = "10100505";4 echo mask($coord_estelar,'p=(#.#,#.#,#.#,#.#)');56 ?>

PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-...

3 de 8 18/10/2012 08:37

Page 4: PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares

Rafael Clares disse:dezembro 2, 2010 às 9:42 pmOpa! Obrigado pelo elogio! Também sou muito fã do JQuery, tenho algumas coisas aquipara postar mas tá meio corrido para mim, entre elas tem um textarea estilo o do facebookque vai aumentando conforme a necessidade, com o essa function que fiz basta adicionaruma class css no textarea e o resto ele faz sozinho é bacana, assim que der eu vou posta-la.Abs

Comentar

ehinarr disse:dezembro 14, 2010 às 2:51 amShow!

Comentar

4.

Jairus Lopes disse:janeiro 23, 2011 às 1:53 amBoa noite !!

Esta é a primeira vez que visito este blog e gostei muito, pois tenho algumas dúvidas e as dicasdo Rafael estão sendo muito importantes para mim.

Parabéns para vocêDeus continue te dando esta sabedoria !!!

Comentar

5.

Marlon disse:janeiro 27, 2011 às 12:17 pmMuuuuuuuuuito brigado

Comentar

6.

Luiz disse:março 1, 2011 às 3:31 pmOlá amigo, achei bastante simples seu codigo mas objetivo… tenho os dados de um telefoneno banco 9681125235 quando eu puxo ele para dentro do input ele aparece assim (96)8112-5235 usando o seu codigo… Mas eu gostaria que voce incrementasse uma solução paracaixas do que estejam em branco, onde eu digite e ele já vai separando (xx) xxxx-xxxx porémele deve salvar no banco de dados sem esses caracteres “divisores”… Se voce puder me ajudaragradeço…

Comentar

Rafael Clares disse:março 1, 2011 às 3:41 pmLuiz, na hora de gravar no banco você precisa retirar os caracteres especiais com opreg_replace por exemplo.

7.

PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-...

4 de 8 18/10/2012 08:37

Page 5: PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares

ex:$telefone = preg_replace(‘/[\(\)\-]/’,”,$telefone);

Comentar

Raphael disse:abril 4, 2011 às 9:10 pmDescobri algo legal, se você usar:$hora = array(“021050″, “1″, “2″);echo mask($hora, ‘Agora são # horas # minutos e # segundos’);

O retorno será:Agora são 021050 horas 1 minutos e 2 segundos

Comentar

8.

fabio disse:maio 11, 2011 às 12:55 pmNa pratica pra valores onde o comprimento é variável , tido uma totalização de relatório, estafunção não funciona …

Comentar

Rafael Clares disse:maio 11, 2011 às 8:00 pmFábio e você poderia dar um exemplo prático que não funcione, digo, um número ou oexemplo que não funcionou para você ?Se o comprimento é variável os parâmetros devem ser também dinâmicos, enfim, esperoque possa nos informar o que não deu certo só para o seu comentário não desvalorizar afunção sem antes vermos.Abraço e obrigado por participar.

Comentar

9.

Wilson disse:julho 22, 2011 às 4:04 amGostei muito da sua dica.Gostaria de saber se existe alguma maneira de fazer uma function que no momento em que eufor digitando os dados, por exemplo o CEP, ele coloque automaticamente o ” – ” após oquinto numero, somente com o PHP, sem usar javascript, para o caso da pessoa desabilitá-lo.Um abraço

Comentar

Rafael Clares disse:julho 22, 2011 às 4:11 amWilson, o PHP trabalha do “lado servidor”, ou seja, só executado à partir do comento emque é enviada a consulta.Para criar alguma interatividade com a interface deve ser uma linguagem que é executadano “lado cliente” que nesse caso pode ser o JavaScript.Agora, o ideal é que se o usuário desativou o Javascript, então ele deverá digitar os dados

10.

PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-...

5 de 8 18/10/2012 08:37

Page 6: PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares

com ou sem a máscara e você formata os dados no PHP ao recebe-los.Em outras palavras para criar uma máscara enquanto o usuário digita você precisa usarlinguagens no cliente (browser).

Se lhe interessar algo em js para criar na digitação veja esse link:

abraços

Comentar

Almir Mel (@almirmel) disse:outubro 14, 2011 às 4:37 pmParabéns muito bom mesmo!Vamos manter contato se quiser :)

Comentar

11.

Danilo Moraes disse:janeiro 10, 2012 às 7:11 pmDesculpa o linguajar chulo, mas essa máscara foi foda, era a solução ideal pro meu projetopois possui código simples e limpo. Abraços.

Comentar

12.

agenteweb disse:janeiro 13, 2012 às 1:11 pmDo caralho! Obrigado mesmo!

Comentar

13.

jorge santos disse:janeiro 22, 2012 às 2:25 pmbom, mas se a tabela já está no formato da mask, ae ao buscar ele gera erros igual a este01..09.8.9/83/0-00.O ideal seria ele fazer alterarção somente nos casos que o numero estivesse sem mask ou seexistir a mask, mante-la.

Comentar

Rafael Clares disse:janeiro 23, 2012 às 12:29 pmNossa, tá bom de lógica em irmão!Veja, não acha mais fácil você usar a mask apenas para inser no banco e ao ler nãoutiliza-la, ou então, armazenar os dados sem traços ou pontos e utilizar a mask apenas aoexibir os dados?Verificar sem necessidade se o número está ou não com mascara sendo que eu posso tercerteza de que ele está ou não?O ideal é saber como será gravado no banco para não precisar existir “os casos queonumero estivesse sem mask ou existir a mask, mante-la”.Ate mais, abs

14.

PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-...

6 de 8 18/10/2012 08:37

Page 7: PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares

Comentar

Irineu Martins Junior disse:fevereiro 15, 2012 às 1:08 pmCara… parabens pela simplicidade do código.Muito bom.

Comentar

15.

Gustavo disse:abril 19, 2012 às 3:23 pmExcelente dica! ja incorporei à minha bilbioteca de funções.

Comentar

16.

Marcos Martins disse:maio 9, 2012 às 11:57 pmParabéns, realmente excelente o site e principalmente esse código camaleão.

Comentar

17.

antonio disse:maio 22, 2012 às 6:12 pmmuito boa essa configuração!!!

Comentar

18.

Santos disse:julho 6, 2012 às 1:58 amMuito bom, precisamos de mais pessoas que faça a distribuição de conhecimento.

Comentar

19.

Lucas S. Tenório disse:agosto 6, 2012 às 7:48 pm//Segue o código em Java Script tbm (Faz um Post de JS):

function InserePontuacao(valor, mascara){var maskared = ”;var x = 0;for(var i = 0; i<=mascara.length-1; i++){if(mascara[i] == '#'){maskared += valor[x];x++;}else{maskared += mascara[i];}}return maskared;}

20.

PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-...

7 de 8 18/10/2012 08:37

Page 8: PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares

//Segue exemplo de usu://var cpf = ("98585695874","###.###.###-##");//var cnpj = ("98585695000167","##.###.###/####-##");

Comentar

Rafael Clares disse:agosto 13, 2012 às 2:07 pmLegal Lucas, valeu meu brother!

Comentar

Joao Osório Silva disse:agosto 23, 2012 às 6:18 pmVixi… esse matou a pau mesmo… ótima funcao para maskarar… parabéns!

Comentar

21.

Blog no WordPress.com. | Tema: Greyzed por The Forge Web Creations.

PHP Máscara CNPJ, CPF, Data e qualquer outra coisa « Rafael Clares http://clares.wordpress.com/2010/11/12/php-mascara-cnpj-cpf-data-e-...

8 de 8 18/10/2012 08:37