Validar CPF em PHP

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.

código em PHP para validar cpf

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: