Validação de CPF e CNPJ
Publicado por Marcelo Bom Jardim 26/01/2005
[ Hits: 31.724 ]
Este script tem a função de validar tanto CPF quanto CNPJ
<?
//Desenvolvedor: Marcelo Bom Jardim
//Email: suporte@onzehost.net
//Site: www.onzehost.net
?>
<?
// VERIFICA CPF
function validaCPF($cpf) {
$soma = 0;
if (strlen($cpf) <> 11)
return false;
// Verifica 1º digito
for ($i = 0; $i < 9; $i++) {
$soma += (($i+1) * $cpf[$i]);
}
$d1 = ($soma % 11);
if ($d1 == 10) {
$d1 = 0;
}
$soma = 0;
// Verifica 2º digito
for ($i = 9, $j = 0; $i > 0; $i--, $j++) {
$soma += ($i * $cpf[$j]);
}
$d2 = ($soma % 11);
if ($d2 == 10) {
$d2 = 0;
}
if ($d1 == $cpf[9] && $d2 == $cpf[10]) {
return true;
}
else {
return false;
}
}
// VERFICA CNPJ
function validaCNPJ($cnpj) {
if (strlen($cnpj) <> 14)
return false;
$soma = 0;
$soma += ($cnpj[0] * 5);
$soma += ($cnpj[1] * 4);
$soma += ($cnpj[2] * 3);
$soma += ($cnpj[3] * 2);
$soma += ($cnpj[4] * 9);
$soma += ($cnpj[5] * 8);
$soma += ($cnpj[6] * 7);
$soma += ($cnpj[7] * 6);
$soma += ($cnpj[8] * 5);
$soma += ($cnpj[9] * 4);
$soma += ($cnpj[10] * 3);
$soma += ($cnpj[11] * 2);
$d1 = $soma % 11;
$d1 = $d1 < 2 ? 0 : 11 - $d1;
$soma = 0;
$soma += ($cnpj[0] * 6);
$soma += ($cnpj[1] * 5);
$soma += ($cnpj[2] * 4);
$soma += ($cnpj[3] * 3);
$soma += ($cnpj[4] * 2);
$soma += ($cnpj[5] * 9);
$soma += ($cnpj[6] * 8);
$soma += ($cnpj[7] * 7);
$soma += ($cnpj[8] * 6);
$soma += ($cnpj[9] * 5);
$soma += ($cnpj[10] * 4);
$soma += ($cnpj[11] * 3);
$soma += ($cnpj[12] * 2);
$d2 = $soma % 11;
$d2 = $d2 < 2 ? 0 : 11 - $d2;
if ($cnpj[12] == $d1 && $cnpj[13] == $d2) {
return true;
}
else {
return false;
}
}
?>
Mapeamento dinâmico de dados em PHP
Backup de arquivos na Cloud com AWS Amazon S3 e PHP
Gerando Código de barras no padrão brasileiro compatível com Browsers Linux e Windows
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









