Como implementar a validação do CPF em PHP
Validar CPF em PHP pode ser uma saída interessante para o desenvolvedor que deseja acrescentar uma camada de segurança no seu software.
Isso porque, validando um CPF apenas com Javascript ainda existem certas brechas que o usuário pode explorar para usar CPF inválido.
Diante desse cenário, portanto, falamos aqui sobre como usar esse modelo de verificação, que é particularmente útil no back-end. De modo geral, apresentamos não só a teoria, mas também um modelo da função PHP para validação dos números. Confira!
Montando uma função PHP para validar e verificar CPF
Para quem acha que a criação e aplicação de um código como esse é algo demasiadamente complexo, começamos com uma boa notícia. O desenvolvimento da função é algo absolutamente simples desde que se tenha o necessário, que é basicamente, o algoritmo do CPF.
É com base nisso, portanto, que vamos apresentar aqui a função e a seguir uma análise sobre as linhas do código apresentado. Segue a função PHP.
function validaCPF($cpf) {
// Extrai somente os números
$cpf = preg_replace( '/[^0-9]/is', '', $cpf );
// Verifica se foi informado todos os digitos corretamente
if (strlen($cpf) != 11) {
return false;
}
// Verifica se foi informada uma sequência de digitos repetidos. Ex: 111.111.111-11
if (preg_match('/(\d)\1{10}/', $cpf)) {
return false;
}
// Faz o calculo para validar o CPF
for ($t = 9; $t < 11; $t++) {
for ($d = 0, $c = 0; $c < $t; $c++) {
$d += $cpf{$c} * (($t + 1) - $c);
}
$d = ((10 * $d) % 11) % 10;
if ($cpf{$c} != $d) {
return false;
}
}
return true;
}
Fonte: github.com
A primeira observação aqui deve se concentrar na primeira linha. Nela é possível observar como uma string é passada como parâmetro.
Depois disso, seguimos para a terceira linha, são removidos os caracteres não numéricos passado como parâmetro. É dessa maneira que se elimina a possibilidade de máscara com “.” e “-“.
Seguindo a análise, chegamos à linha 5, onde deve-se verificar se após a limpeza da string surge o número correto de caracteres na string remanescente, ou seja, 11.
Considerando que a condicional é verdadeira, então procede-se a verificação com o else if da décima novena linha para descobrir se o padrão numérico informado é composto por valores iguais.
Essa parte é fundamental para evitar que números repetitivos como 222.222.222-22, por exemplo, passe no teste como um número válido. Isso porque embora ele de fato atenda os padrões do algoritmo do CPF, na verdade NÃO é um número realmente válido.
Na sequência chegamos às linhas de 13 a 21, cuja função é verificar se os dois dígitos verificadores podem ser considerados válidos. Em caso de negativa, a validação aponta false e encerra a função.
Por outro lado, se a linha 22 for atingida então o resultado é o boolean true, que aponta que o CPF é de fato válido.
Vale notar que este é um código que tem compatibilidade com o PHP 7.0 ou superior.
Considerações finais sobre validar CPF em PHP
Levando em conta tudo o que foi analisado, podemos dizer que é consideravelmente simples a implementação de uma função para verificar CPF, seja em Javascript ou PHP, certo?
Mas o melhor de tudo é que muitas vezes nem é necessário recorrer a esse caminho. Isso porque sites como o próprio, já oferecem ferramentas úteis como um gerador de CPF válido com um clique. Você pode clicar agora mesmo e gerar quantos exemplos quiser.
Veja como também como: