Consultar Cep

Publicado por Hernando dos Santos Almeida 12/05/2005

[ Hits: 17.038 ]

Download cep.zip




Digite o cep e retornará o nome da rua, estado e cidade.

Bom para interagir em formulários de cadastro ou algo de tipo.

  



Esconder código-fonte

//arquivo cep.php
<?php

class BUSCACEP{
// propriedades
var $CEP;
var $UF;
var $LOCALIDADE;
var $LOGRADOURO;
var $BAIRRO;
var $ERRO; // 1 - Cep nao está cadastrado //2 - mudança no layout site correio

function post_url_correios(){
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.correios.com.br/servicos/cep/cep_cep.cfm");

curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // segundos
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"CEP=" . $this->CEP);
$result=curl_exec ($ch);
curl_close ($ch);
return $result;
}


function extract_result( $page_result){
function extract_next_field(&$dados){
 $pos = strpos($dados, "<TD style=\"color:202A65\">");
 $dados = substr($dados, $pos);
 $pos = strpos($dados, "</TD>");
 $result = substr($dados, 25, $pos - 4);
 $dados =  substr($dados, $pos);
 return $result;
}

$dados = $page_result;
$pos = strpos( $dados, $this->CEP);
if( !($pos > 0) ){
 $this->ERRO = 2;
 return "";
}
$dados = substr( $dados, $pos);
$pos = strpos($dados, "</tr>");
$dados = substr( $dados,1, $pos);

// Pegar Estado
$this->UF = extract_next_field($dados);

// Pegar Localidade
$this->LOCALIDADE = extract_next_field($dados);

//Pegar logradouro
$this->LOGRADOURO = extract_next_field($dados);

//Pegar Bairro
$this->BAIRRO = extract_next_field($dados);
}

//constructor
function BUSCACEP( $cep ){
 if(!empty($cep) ){
  $this->CEP = $cep;
  $page_result = $this->post_url_correios();
  $pos = strpos( $page_result, "não está cadastrado");
  if($pos > 0){
   $this->ERRO = 1;    
  } else {
   $this->extract_result( $page_result );
  }
 }
}
};
?>

//Arquivo consulta_cep.php
<?
   include "cep.php";
   $DADOS_CEP = new BUSCACEP($cep);
?>

<html>
<head>
<title></title>
<meta name="Description" content="">
<meta name="Keywords" content="">
<meta name="Author" content="Theofilo Brito">
<meta name="Generator" content="AceHTML 4 Pro">
</head>
<body>
<?
   if(empty($cep) ){
        echo "digite: " .$host . "?cep=15500-000";
     }

   if( $DADOS_CEP->ERRO == 1) {
      echo "CEP naum cadastrado";
   }
   ?>

<table border="1">
   <tr>
      <td>CEP: <? echo $DADOS_CEP->CEP; ?></td>
   </tr>
   <tr>
      <td>UF: <? echo $DADOS_CEP->UF; ?></td>
   </tr>
   <tr>
      <td>Localidade: <? echo $DADOS_CEP->LOCALIDADE; ?></td>
   </tr>
   <tr>
      <td>Logradouro: <? echo $DADOS_CEP->LOGRADOURO; ?></td>
   </tr>
   <tr>
      <td>Bairro: <? echo $DADOS_CEP->BAIRRO; ?></td>
   </tr>
   
</table>

</body>
</html>

Scripts recomendados

Relogio Digital

Port scanner simples em PHP

Identificando o Navegador do Cliente Web

Mail BomBer

phpCBLConsult


  

Comentários
[1] Comentário enviado por Anjinhoo em 12/05/2005 - 23:02h

massa.. bem util isso..

[]`z

[2] Comentário enviado por mariokolm em 19/01/2006 - 18:50h

naum consigo fazer funcionar de jeito nenhum possuo o conectiva com php4 e apache, se puder ajudar agradeço.

[3] Comentário enviado por frodoj em 01/02/2008 - 09:59h

blz.... vamos testar esse script... qquer coisa post aki a resposta... parabens

[4] Comentário enviado por israelruiz em 03/06/2008 - 17:30h

Acho que mudou algo no site dos correios pois tambem nao consegui fazer rodar nao traz nada como resposta, coloquei alguns echos para testar e dentro da funçao nao retorna mais nada

[5] Comentário enviado por israelruiz em 03/06/2008 - 17:31h

Alguem tem alguma ideia ??? se estou correto ?

[6] Comentário enviado por brunobarreto em 18/08/2009 - 17:52h

Pra quem precisar, eu disponibilizei um sistema de consulta de CEP online com retorno em XML ou JSON.
http://www.brunobarreto.net/web-services/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts