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;
}
}
?>