-
Notifications
You must be signed in to change notification settings - Fork 0
/
loadCnpj.php
executable file
·88 lines (71 loc) · 2.51 KB
/
loadCnpj.php
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
$cnpj = $_POST['cnpj'];
//Etapa 1: Cria um array com apenas os digitos numéricos, isso permite receber o cnpj em diferentes formatos como "00.000.000/0000-00", "00000000000000", "00 000 000 0000 00" etc...
$j=0;
for($i=0; $i<(strlen($cnpj)); $i++) {
if(is_numeric($cnpj[$i])) {
$num[$j]=$cnpj[$i];
$j++;
}
}
//Etapa 2: Conta os dígitos, um Cnpj válido possui 14 dígitos numéricos.
if(count($num)!=14) {
die('false');
}
//Etapa 3: O número 00000000000 embora não seja um cnpj real resultaria um cnpj válido após o calculo dos dígitos verificares e por isso precisa ser filtradas nesta etapa.
if ($num[0]==0 && $num[1]==0 && $num[2]==0 && $num[3]==0 && $num[4]==0 && $num[5]==0 && $num[6]==0 && $num[7]==0 && $num[8]==0 && $num[9]==0 && $num[10]==0 && $num[11]==0) {
die('false');
}
else { //Etapa 4: Calcula e compara o primeiro dígito verificador.
$j=5;
for($i=0; $i<4; $i++) {
$multiplica[$i]=$num[$i]*$j;
$j--;
}
$soma = array_sum($multiplica);
$j=9;
for($i=4; $i<12; $i++) {
$multiplica[$i]=$num[$i]*$j;
$j--;
}
$soma = array_sum($multiplica);
$resto = $soma%11;
if($resto<2) {
$dg=0;
}
else {
$dg=11-$resto;
}
if($dg!=$num[12]) {
die('false');
}
}
//Etapa 5: Calcula e compara o segundo dígito verificador.
if(!isset($isCnpjValid)) {
$j=6;
for($i=0; $i<5; $i++) {
$multiplica[$i]=$num[$i]*$j;
$j--;
}
$soma = array_sum($multiplica);
$j=9;
for($i=5; $i<13; $i++) {
$multiplica[$i]=$num[$i]*$j;
$j--;
}
$soma = array_sum($multiplica);
$resto = $soma%11;
if($resto<2) {
$dg=0;
}
else {
$dg=11-$resto;
}
if($dg!=$num[13]) {
die('false');
}
else {
echo'true';
}
}
?>