CodePráticov3.3.0
PHP

Como validar CPF em PHP

Valide o formato e os dígitos verificadores de um CPF em PHP sem depender apenas de expressão regular.

Remover máscara

$cpf = preg_replace('/\D/', '', $cpf);

Antes de calcular os dígitos, mantenha somente números.

Função completa

function validarCpf(string $cpf): bool
{
    $cpf = preg_replace('/\D/', '', $cpf);

    if (strlen($cpf) !== 11) {
        return false;
    }

    if (preg_match('/^(\d)\1{10}$/', $cpf)) {
        return false;
    }

    for ($t = 9; $t < 11; $t++) {
        $soma = 0;

        for ($i = 0; $i < $t; $i++) {
            $soma += (int) $cpf[$i] * (($t + 1) - $i);
        }

        $digito = (10 * $soma) % 11;
        $digito = $digito === 10 ? 0 : $digito;

        if ((int) $cpf[$t] !== $digito) {
            return false;
        }
    }

    return true;
}

Uso

if (validarCpf('123.456.789-00')) {
    echo 'CPF válido';
} else {
    echo 'CPF inválido';
}

O que essa validação garante?

Importante: validar os dígitos verificadores confirma a consistência matemática do número. Isso não comprova que o CPF pertence a uma pessoa específica ou está ativo em um cadastro oficial.