Logo SatellaSoft



Buscando endereço através de CEP com PHP

Veja como é simples encontrar dados de um determinado endereço através do CEP.


Ícone homem Gunnar Correa
Ícone data de publicação 24/02/2018
Ícone quantidade de visualização 2,087
Ícone bandeira do Brasil Português

É através do CEP que podemos encontrar dados relacionados a um endereço, assim podemos preencher os demais campos automaticamente sem que o usuário preencha manualmente. Antes de prosseguirmos, precisamos entender de fato o que é um CEP e porque ele existe.

“O Código de Endereçamento Postal é um conjunto numérico constituído de oito algarismos, cujo objetivo principal é orientar e acelerar o encaminhamento, o tratamento e a distribuição de objetos de correspondência, por meio da sua atribuição a localidades, logradouros, unidades dos Correios, serviços, órgãos públicos, empresas e edifícios.” (Acesso em 24/02/2018 https://www.correios.com.br/para-voce/precisa-de-ajuda/o-que-e-cep-e-por-que-usa-lo).

Normalmente para preencher os dados do formulário com base nos números do CEP informado, utilizamos o Javascript para fazer uma requisição via AJAX e retornar os dados, para posteriormente preencher os campos.

Existem diversos serviços que disponibilizam API para integração, aqui vamos usar o site viacep.com, porém é muito importante que o desenvolvedor fique atento e estes serviços, pois eles podem parar de funcionar, e se isso acontecer, a aplicação tem que continuar funcionando sem ter erros que comprometam os formulários.

Vamos há um exemplo de como obter os dados de um CEP e retornar em uma string JSON, posteriormente convertermos este JSON em um array.

Para retornar os dados, basta fazer uma chamada através de uma URL passando o CEP sem o ‘‘.

Exemplo de utilização: https://viacep.com.br/ws/123456000/json/

Para executar o código abaixo, é só acessara URL do script e passar uma query string com o CEP, da seguinte forma localhost/cep.php?cep=03009000.

Código 01:


	

CEP: cep;?>

LOGRADOURO: logradouro;?>

COMPLEMENTO: complemento;?>

BAIRRO: bairro;?>

LOCALIDADE: localidade;?>

UF: uf;?>

UNIDADE: unidade;?>

IBGE: ibge;?>

GIA: gia;?>

Agora vamos utilizar uma outra API para testes, essa API é interna do SatellaSoft é possui apenas 5 CEP cadastrado, ela deve ser utilizada apenas para testes, até porque não tem nenhuma utilidade com uma quantidade baixa de informações.

Exemplo de utilização: http://satellasoft.com/servicos/buscacep/?cep=123456000. Porém para utilizar o serviço de API de testes, é necessário que sua aplicação esteja rodando em um servidor WEB e não em servidor local.

Os CEPs disponíveis são:

CEP 01: 19050690 - Presidente Prudente

CEP 02: 01001000 - São Paulo

CEP 03: 69921126 - Acre

CEP 04: 13940000 - Águas e Lindóia/SP

CEP 05: 19640000 - Iepê/SP

Veja no algoritmo abaixo como fazer a requisição.

Código 02:


	

CEP: cep;?>

LOGRADOURO: logradouro;?>

COMPLEMENTO: complemento;?>

BAIRRO: bairro;?>

LOCALIDADE: localidade;?>

UF: uf;?>

UNIDADE: unidade;?>

IBGE: ibge;?>

GIA: gia;?>

Caso você não tenha um servidor WEB para testar, você pode criar a API de testes, basta criar um script com os códigos abaixo e fazer a chamada a partir dele, mas respeite as limitaçãos dos CEPs disponíveis, como se trata de uma API de testes, não use em ambiente de produção.

Código 03:

 "19050-690",
					  "logradouro" => "Rua Democrata",
					  "complemento" => "",
					  "bairro"=> "Jardim Bongiovani",
					  "localidade" => "Presidente Prudente",
					  "uf" => "SP",
					  "unidade" => "",
					  "ibge" => "3541406",
					  "gia" => "5629"
				);			
			break;
			case '01001000':
				$cepdata = array(
						"cep" => "01001-000",
						"logradouro" => "Praça da Sé",
						"complemento" => "lado ímpar",
						"bairro" => "Sé",
						"localidade" => "São Paulo",
						"uf" => "SP",
						"unidade" => "",
						"ibge" => "3550308",
						"gia" => "1004"
				);			
			break;
			case '69921126':
				$cepdata = array(
					  "cep" => "69921-126",
					  "logradouro" =>  "Rua Angelim",
					  "complemento" =>  "",
					  "bairro" =>  "Loteamento Novo Horizonte",
					  "localidade" =>  "Rio Branco",
					  "uf" =>  "AC",
					  "unidade" =>  "",
					  "ibge" =>  "1200401",
					  "gia" =>  ""
				);
			break;
			case '13940000':
				$cepdata = array(
					  "cep"  =>  "13940-000",
					  "logradouro"  =>  "",
					  "complemento"  =>  "",
					  "bairro"  =>  "",
					  "localidade"  =>  "Águas de Lindóia",
					  "uf"  =>  "SP",
					  "unidade"  =>  "",
					  "ibge"  =>  "3500501",
					  "gia" => "1533"
				);
			break;
			
			case '19640000':
				$cepdata = array(
					  "cep"  =>  "19640-000",
					  "logradouro"  =>  "",
					  "complemento"  =>  "",
					  "bairro"  =>  "",
					  "localidade"  =>  "Iepê",
					  "uf"  =>  "SP",
					  "unidade"  =>  "",
					  "ibge"  =>  "3519907",
					  "gia" => "3475"
				);
			break;
		}
		
		echo json_encode($cepdata);
		
	}else{
		echo "invalid";
	}
?>

Por hora é apenas isso, eu vou ficando por aqui e nos vemos na próxima oportunidade.





Sobre o autor


Gunnar Correa

Nome: Gunnar Correa

Site: http://www.gunnarcorrea.com


Autodidata, graduado em Desenvolvimento Web e especialista em Tecnologias na Educação em uma universidade no interior de São Paulo. Comecei meus estudos na área de programação quando ainda era criança, e atualmente estou estudando desenvolvimento de jogos.

Sou o CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.


Comentários



É necessário estar autenticado para comentar, clique aqui para se registrar ou aqui para acessar a sua conta!