-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidador.php
More file actions
65 lines (46 loc) · 2.02 KB
/
validador.php
File metadata and controls
65 lines (46 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
class Documento{
/**
* @param $numero, recebe o número do CPF para validação.
*/
public function setCpf($numero){
$resultado = Documento::validaCpf($numero);
if($resultado === false){
throw new Exception("CPF informado não é válido.", 1);
}
}
/**
* Verifica a existencia do CPF
* @param $recebeCpf recebe o número
*/
public function validaCpf($recebeCpf)::bool{
/* Verifica se o número foi informado */
if(empty($recebeCpf)) return false;
/* Elimina possíveis mascaras */
$recebeCpf = preg_replace('[^0-9]', '', $recebeCpf);
$recebeCpf = str_pad($recebeCpf, 11, '0', STR_PAD_LEFT);
/* Verifica se o número de digitos informado é igual a 11 */
if(strlen($recebeCpf) != 11):
return false;
/**
* Verifica se nenhuma das sequencias abaixo, foram digitadas.
* Caso foi digitada, ele retorna false.
*/
elseif($recebeCpf == "00000000000" || $recebeCpf == "11111111111" || $recebeCpf == "22222222222" || $recebeCpf == "33333333333" || $recebeCpf == "44444444444" || $recebeCpf == "55555555555" || $recebeCpf == "66666666666" || $recebeCpf == "77777777777" || $recebeCpf == "88888888888" || $recebeCpf == "99999999999"):
return false;
else:
/**
* Calcula os digitos do CPF para verificar se ele é válido.
*/
for ($dig = 9; $dig < 11; $dig++) {
for ($d = 0, $c = 0; $c < $dig; $c++) {
$d += $cpf{$c} * (($t + 1) - $c);
}
$d = ((10 * $d) % 11) % 10;
if ($cpf{$c} != $d) {
return false;
}
}
return true;
endif;
}
}