Verificar se o CPF é válido
Dica publicada em Linux / Introdução
Verificar se o CPF é válido
Vamos fazer uma função em PHP, que vai retornar se determinado CPF é válido ou não. Mas antes disso, vamos entender como é feito este cálculo.
Vamos testar:
5×10 = 50
5×9 = 45
5×8 = 40
4×7 = 35
4×6 = 24
4×5 = 20
3×4 = 16
3×3 = 9
3×2 = 6
____________
Total = 245
Agora Vamos a alguns cálculos para verificarmos o primeiro dígito.
Dividiremos o total das multiplicações dos números do CPF que foi feita acima (245) por 11, ficando assim:
245 / 11 = 22
Você pode está pensando, porque 22, poderia ser 21 também, vamos explicar:
- Para o cálculo dar certo, precisamos de divisões que sejam exatas ou tenham sobras de números, e não de falta de números.
Exemplo : Usando o processo reverso da divisão (ou seja, a multiplicação) se fosse 21 o resultado da questão, ficaria assim:
245 / 11 = 21
Mas: 21 * 11 = 231
Sendo assim, faltariam números pois o nosso número alvo é 245, e o resultado foi 231 que é menor, e nosso objetivo é que tenha sobra de números e não a falta de números. Já usando o 22, o resultado ficaria:
245 / 11 = 22
Exemplo : 22 * 11 = 242 (sendo assim, teríamos sobra de números que no caso é 8)
Agora é só usar a sobra ( 8 ) e subtrair por 11, ficando assim:
11 - 8 = 3
Agora que encontramos o Primeiro Dígito (que é 3), já descobrimos que o CPF exemplificado é um CPF inválido, pois o primeiro digito é 3 e não o número 8.
Depois disso, vamos puxar a informação:
verificar_cpf($cpf)
E para quem quiser ver, aqui tem uma demonstração online: http://www.renanmpimentel.com.br/exemplos/validar-cpf
Como é feito o cálculo do CPF
O CPF é formado por 11 números, e os dois últimos números são os dígitos verificadores. Vamos criar aqui um número qualquer: 555.444.333-89, neste exemplo os dígitos verificadores são 8 e 9.Vamos testar:
5×10 = 50
5×9 = 45
5×8 = 40
4×7 = 35
4×6 = 24
4×5 = 20
3×4 = 16
3×3 = 9
3×2 = 6
____________
Total = 245
Agora Vamos a alguns cálculos para verificarmos o primeiro dígito.
Dividiremos o total das multiplicações dos números do CPF que foi feita acima (245) por 11, ficando assim:
245 / 11 = 22
Você pode está pensando, porque 22, poderia ser 21 também, vamos explicar:
- Para o cálculo dar certo, precisamos de divisões que sejam exatas ou tenham sobras de números, e não de falta de números.
Exemplo : Usando o processo reverso da divisão (ou seja, a multiplicação) se fosse 21 o resultado da questão, ficaria assim:
245 / 11 = 21
Mas: 21 * 11 = 231
Sendo assim, faltariam números pois o nosso número alvo é 245, e o resultado foi 231 que é menor, e nosso objetivo é que tenha sobra de números e não a falta de números. Já usando o 22, o resultado ficaria:
245 / 11 = 22
Exemplo : 22 * 11 = 242 (sendo assim, teríamos sobra de números que no caso é 8)
Agora é só usar a sobra ( 8 ) e subtrair por 11, ficando assim:
11 - 8 = 3
Agora que encontramos o Primeiro Dígito (que é 3), já descobrimos que o CPF exemplificado é um CPF inválido, pois o primeiro digito é 3 e não o número 8.
Função em PHP
Depois disso, vamos puxar a informação:
verificar_cpf($cpf)
E para quem quiser ver, aqui tem uma demonstração online: http://www.renanmpimentel.com.br/exemplos/validar-cpf
11 - 3 = 8
O PRIMEIRO DIGITO TÁ CERTO!!!!!!
O SEGUNDO DIGITO QUE TÁ ERRADO!!!!!