-
Notifications
You must be signed in to change notification settings - Fork 0
/
busca_comcep.php
63 lines (44 loc) · 1.72 KB
/
busca_comcep.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
<?php
//definição da variavel de erro Global
$erro_buscacomcep = '';
//inicia a variavel
$resultado = '';
function BuscaComCep () {
//verifica se foi informado o cep
if(isset ($_POST['cep'])){
//pega o valor informado
$cep = $_POST['cep'];
//filtra os numeros do valor informado
$cep = FilterCep($cep);
//verifica se é valido
if( ValidCep ($cep)){
//recebe os dados
$resultado = BuscaCepViaCep($cep);
//verifica se existe o cep
if(property_exists($resultado,'erro')){
//informa que o cep não foi encontrado
$GLOBALS['erro_buscacomcep'] = 'CEP Não Encontrado';
} else {
return $resultado;
}
} else {//se não for um cep valido não realiza a consulta e os objetos continuam vazio
//informa que o cep é inválido
$GLOBALS['erro_buscacomcep'] = 'CEP inválido';
}
}
}
function FilterCep (String $cep):String {
//filtra por apenas numeros
return preg_replace('/[^0-9]/','',$cep);
}
function ValidCep (String $cep) :bool{
//verifica se contem 8 numeros separados ou nao por - , após a quinto caracter
return preg_match('/^[0-9]{5}-?[0-9]{3}$/',$cep);
}
function BuscaCepViaCep (String $cep){
//busca o endereço com a API ViaCep
$viacep = 'https://viacep.com.br/ws/'.$cep.'/json/';
//retorna os dados como um objeto
return json_decode(file_get_contents($viacep));
}
?>