Script para Validar CPF em PHP

Aprenda como implementar facilmente em PHP um script para validação de CPFs.

Script para Validar CPF em PHP

Neste artigo vamos mostrar como programar uma função em PHP para validar um CPF de acordo com o algoritmo do CPF.

Vamos a função e na sequência analisaremos o código linha a linha:

Observação: Esse código é compatível com PHP >= 7.0

function validaCPF($cpf = null) {

	// Verifica se um número foi informado
	if(empty($cpf)) {
		return false;
	}

	// Elimina possivel mascara
	$cpf = preg_replace("/[^0-9]/", "", $cpf);
	$cpf = str_pad($cpf, 11, '0', STR_PAD_LEFT);
	
	// Verifica se o numero de digitos informados é igual a 11 
	if (strlen($cpf) != 11) {
		return false;
	}
	// Verifica se nenhuma das sequências invalidas abaixo 
	// foi digitada. Caso afirmativo, retorna falso
	else if ($cpf == '00000000000' || 
		$cpf == '11111111111' || 
		$cpf == '22222222222' || 
		$cpf == '33333333333' || 
		$cpf == '44444444444' || 
		$cpf == '55555555555' || 
		$cpf == '66666666666' || 
		$cpf == '77777777777' || 
		$cpf == '88888888888' || 
		$cpf == '99999999999') {
		return false;
	 // Calcula os digitos verificadores para verificar se o
	 // CPF é válido
	 } else {   
		
		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;
	}
}

Na linha 3, verificamos se uma string foi passada como parâmetro. Caso negativo, o script retorna false.

Na linha 8, removemos todos os caracteres não númericos do CPF passado como parâmetro, eliminando uma possível máscara contendo "." e "-".

Na linha 13 verificamos se após a limpeza da string, temos o número correto de caracteres (11) na string restante.

Caso a verificação seja verdadeira, verificamos com o else if da linha 18 se o CPF informado é composto por valores iguais. Essa checagem é necessária uma vez que se aplicarmos o algoritmo do CPF sobre um número todo igual como "333.333.333-33" teoricamente os dígitos verificadores estão corretos, mas este NÃO é um número válido.

As linha 31 à 42 verificam se os dois dígitos verificadores são válidos de acordo com o algoritmo do CPF. Caso negativo, a validação já false encerrando a função.

Caso o algoritmo atinja a linha 44 temos um CPF válido e o boolean true é retornado.

Muito fácil não é? Se você tem dificuldades com a linguagem PHP, recomendamos fortemente o site http://www.cursodephp.com.br. Este site apresenta um curso de PHP grátis e completo, extremamente instrutivo.

Para ver este script em ação, acesse nossa página do validador de CPF online. Se você quiser testar seu próprio script gerado, utilize nossa página principal para gerar cpf válido.


Gostou? Divulgue Este Artigo!