Pular para o conteúdo

Consultar Cep

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

Bom para interagir em formulários de cadastro ou algo de tipo.
Hernando dos Santos Almeida Hernando
Hits: 17.504 Categoria: PHP Subcategoria: Internet
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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

Bom para interagir em formulários de cadastro ou algo de tipo.
Download cep.zip Enviar nova versão

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>

Mural de recados em PHP

Upload de arquivos com PHP

Port scanner simples em PHP

Consulta SPC

Contador de acessos com PHP+MySQL

#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 ?

Contribuir com comentário

Entre na sua conta para comentar.