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
Compartilhe esse post:
  • Print
  • email
  • Technorati
  • LinkedIn
  • Digg
  • del.icio.us
  • Facebook
  • Live
  • MySpace
  • Add to favorites
  • FriendFeed
  • PDF
  • Ping.fm
  • RSS
  • Tumblr
  • Twitter