Consultar Cep
Publicado por Hernando dos Santos Almeida 12/05/2005
[ Hits: 17.396 ]
Digite o cep e retornará o nome da rua, estado e cidade.
Bom para interagir em formulários de cadastro ou algo de tipo.
//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>
Classe para criar menus de listas
Enviando e-mai direto do site em php.
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









