PHP: Buscar endereço pelo CEPCorreios

Esta é uma classe PHP que envia uma requisição HTTP para o WebServer dos Correios e retorna o logradouro, bairro, localidade e UF com base no CEP informado.

Icon

buscarcep-20121008.zip
1.31 KB 3544 downloads

Autor: Renan Martins Pimentel
País: Brasil

Rješenje 1

Uso
É muito simples, dispensa maiores explicações. Faça download da classe no link acima ou no repositório PHPClasses onde o autor disponibilizou.

Basta colocar os arquivos Correios.php i informacoesCorreios.php junto da sua aplicação (ou em algum diretório apropriado) e fazer a chamada da classe, ovako:

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
<?php
 
require_once "Correios.php";
$correios = novi Correios;
$correios->retornaInformacoesCep(88095040);
 
echo $correios->informacoesCorreios->getLogradouro();
echo "<br />";
echo $correios->informacoesCorreios->getBairro();
echo "<br />";
echo $correios->informacoesCorreios->getLocalidade();
echo "<br />";
echo $correios->informacoesCorreios->getUf();
echo "<br />";
echo $correios->informacoesCorreios->getCep();
echo "<br />";
 
/*
  A SAÍDA SERÁ:
 
  Travessa Rodolfo Silva
  Jardim Atlântico
  Florianópolis
  SC
  88095-040
*/
 
?>

Agradeço ao Renam (twitter @renanmpimentel), autor da classe, por ceder gentilmente o código-fonte.

Rješenje 2

Obtendo o endereço com phpQuery
Uma outra forma de se obter o endereço dos correios é utilizando o phpQuery. O phpQuery é um projeto interessante, pois nos permite utilizar o PHP para navegar em elementos DOM (Document Object Model) baseando-se na biblioteca JavaScript jQuery.

Antes de continuar, dê uma olhada no código-fonte do buscar-cep.php que o próprio Renam disponibilizou neste link:
https://github.com/renanmpimentel/PHPQuery/blob/master/buscar-cep.php

Para entender melhor, vamos dar um exemplo que tem a ver com a busca por CEP deste Post. Suponha que você faça um CURL (PHP) no WebServer dos correios passando o CEP e recebendo os dados do endereço correspondente (logradouro, bairro, UF, itd). Esse conteúdo chega para você em um emaranhado de HTML, difícil de rastrear e capturar as informações desejadas, tipo assim:

Código HTML parcial referente ao retorno cURL, para recuperar o Bairro:
1
2
3
4
5
6
7
 
...
<div class="caixacampobranco">
  <span class="resposta">Bairro: </span>
  <span class="respostadestaque">Campo Grande</span>
  <Br/>
...
Com a função pq() do phpQuery você simplesmente chega à informação desejada (Campo Grande) através da cadeia de seletores CSS3:
1
2
3
4
 
...
  $bairro = pq('.caixacampobranco .resposta:contains("Bairro: ") + .respostadestaque:eq(0)')->HTML();
...

Esta é apenas uma pequena demonstração de como funciona, mas você pode encontrar a documentação completa sobre phpQuery neste link:
http://code.google.com/p/phpquery/

Para usar, baixe o arquivo phpQuery-onefile.php e coloque junto da sua aplicação.

To je to…

Ukupno pogodaka: 21372

9 Komentari na “PHP: Buscar endereço pelo CEPCorreios

    • Rafael, o código foi testado antes de ser publicado, inclusive, fiz questão de testar novamente agora a pouco e está funcionando perfeitamente. Teria que ver como você implementou e a falha que está havendo. Outro detalhe importante, é que o serviço no site dos correios (http://www.buscacep.correios.com.br/) precisa estar no ar. Se o site cair, então não vai funcionar.

  1. Roger Rekao je:

    Valeu irmão, eu tinha uma base mas estava desatualizada. Seu código funcionou perfeitamente e super rápido. Abs

  2. Rodrigo Rekao je:

    Estou com o seguinte problema ao passar CEP’s que começam com 0 (nula), tipo assim, 03631000, 03632010, itd… ele está tirando o zero a esquerda.

    Alguém sabe como resolver?

ostavi odgovor

Na vašu e-mail adresu će biti objavljen. Obavezna polja označena su sa *