CPF

Download do Código
index.php (Apenas Leitura)
<?php
	require_once("Validador.php");
	$cpfValidado = false;
	$cpf         = '';
	if (isset($_GET['txtCPF'])) {
		$cpf         = $_GET['txtCPF'];
		$validador   = new Validador();
		$cpfValidado = $validador->validaCPF($cpf);
	}
?>
<!DOCTYPE html>
<html lang="pt-br">
	<head>
		<title>Validador CPF</title>
		<meta charset="utf-8">
	</head>
	<body>
		<form>
			<label for="txtCPF">
				Informe o CPF
			</label>
			<input
				type="text"
				name="txtCPF"
				value="<?php echo $cpf;?>"
			>
			<input type="submit">
		</form>
		<?php
			if ($cpfValidado)
				echo "CPF Válido";
			else
				echo "CPF Inválido";
		?>
	</body>
</html>
Validador.php (Apenas Leitura)
<?php
	class Validador {
		public 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;
		}
	}
?>
Atualizar Visualização