Uma simples função em PHP para formatar um CPF ou CNPJ. Tive a necessidade de implementa-la em um projeto que estou desenvolvendo e criei essa função… tá quentinha, acabou de sair do forno… aceito sugestões!!!
function formatarCPF_CNPJ($campo, $formatado = true){
//retira formato
$codigoLimpo = ereg_replace("[' '-./ t]",'',$campo);
// pega o tamanho da string menos os digitos verificadores
$tamanho = (strlen($codigoLimpo) -2);
//verifica se o tamanho do código informado é válido
if ($tamanho != 9 && $tamanho != 12){
return false;
}
if ($formatado){
// seleciona a máscara para cpf ou cnpj
$mascara = ($tamanho == 9) ? '###.###.###-##' : '##.###.###/####-##';
$indice = -1;
for ($i=0; $i < strlen($mascara); $i++) {
if ($mascara[$i]=='#') $mascara[$i] = $codigoLimpo[++$indice];
}
//retorna o campo formatado
$retorno = $mascara;
}else{
//se não quer formatado, retorna o campo limpo
$retorno = $codigoLimpo;
}
return $retorno;
}
Basta chamar a função, informando como parâmetro o CNPJ / CPF e se deseja que retorne formatado, isso possibilita que você formate ou retire a formatação de um CNPJ / CPF.
print formatarCPF_CNPJ("01001001000101",true);
// retorna 01.001.001/0001-01
print formatarCPF_CNPJ("01.001.001/0001-01",false);
// retorna 01001001000101
by Caio Oliveira
13 Nov 2008 at 08:13
Gostei da função parabéns. Obrigado por compartilha-lá!
by mccoY
21 Nov 2008 at 12:35
ME BJA NA BOCA?
by Rodrigo Müller
25 Feb 2009 at 09:18
Código espetacular.
Funciona 100%.
Obrigado
by Everton Inocencio
20 May 2009 at 07:03
Gostei!
Eu ia criar uma função pra isso, mas googlei e achei exatamente o que precisava.
Parabéns e Obrigado. ;D
by Diego
27 Jun 2009 at 15:11
Muito boa esta função, prática e fácil de usar.
Parabéns.
by Brantan
22 Jul 2009 at 14:12
Função muito útil, vou utilizar em uma class geral. Valeu Parabéns!
by JunioR
29 Jul 2009 at 08:54
Não seria mais fácil assim:
$x = ’12345678911′;
$y = preg_replace(‘/([\d]{3})([\d]{3})([\d]{3})/’,'$1.$2.$3-’,$x);
print_r($y);
[s]
by Renato Silva
05 Aug 2009 at 08:06
Valeu cara, essas dicas sempre são de grande ajuda pra agilizar alguns esquemas que, pra fazer do zero, são cansativos e matam nosso tempo, que sempre é pouco. Agora o esquema é a gente montar uma biblioteca e soltar na net, rs rs
Parabéns.
by André
19 Aug 2009 at 22:42
Parabéns pelo excelente código e muito obrigado pela grande ajuda!
by Cluadenir
11 Sep 2009 at 05:59
Junior
Muito mais facil o seu exemplo!!!
by Natanael
17 Dec 2009 at 05:40
Os dois exemplos são muito bons, mas o do Junior é demais, muito bom, pra ficar ainda mais eficiente, usei essa linha $codigoLimpo = ereg_replace(“[^0-9]“, ”, $var) para deixar o codigo realmente limpo, pois deixa somente numeros.
Parabéns e obrigado.
by Sergio
07 Jan 2010 at 13:34
Muito simples, prático e eficiente.
Show de bola.
by Igor
04 Feb 2010 at 08:34
Valeu por compartilhar o código do cnpj_cpf!!
by Mauricio Schell
16 Mar 2010 at 07:40
Mas a Marcos Junior pega pra cnpj também
by Geison
23 Apr 2010 at 18:49
Me poupou tempo, muito tempo. Valeu pela mão nas quatro rodas!