Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera,
Eu sei como buscar o endereço pelo CEP.
Só que agora eu estava querendo ao contrário, buscar o CEP pelo endereço, tem como????
Estou tentando procurar na internet mas tá difícil.
Abraços
>
O banco que você puxa o endereço pelo CEP é seu? ou um webservice? ele possibilita enviar o endereço?(acho dificil)
É um webservice. E acho que não me permite enviar o endereço... apenas o CEP e ele me retorna o endereço.
Eu queria algo como o google... porque se eu coloco lá no maps google:
R. dos Pinheiros, 1275 - Pinheiros, São Paulo - SP
Ele mostra o CEP... será que se eu informo o endereço certinho ele vai me retornar mais de um CEP??? o.O
Grato,
Lucas Martins
sinceramente o CEP é o melhor a se fazer, voce oculta os outros campos e quando preenche-se o CEP a pessoa ja tem tudo preenchido, cidade, estado, bairro, rua na maioria dos casos, só falta o numero, é melhor para ambos, só que quem não sabe o CEP ai fica dificIl. Em todo caso use CEP =D
estou a procurar algo nos livros aqui de casa, mas não garanto nada por enquanto, até mais
>
sinceramente o CEP é o melhor a se fazer, voce oculta os outros campos e quando preenche-se o CEP a pessoa ja tem tudo preenchido, cidade, estado, bairro, rua na maioria dos casos, só falta o numero, é melhor para ambos, só que quem não sabe o CEP ai fica dificIl. Em todo caso use CEP =D
estou a procurar algo nos livros aqui de casa, mas não garanto nada por enquanto, até mais
Acho que você não entendeu muito bem Alexandre.
Buscar o endereço pelo CEP é fácil, o problema é que eu quero buscar o número do CEP pelo endereço que o cidadão irá digitar lá...
E pelo motivo que você disse, do cidadão não saber o CEP, ele preencherá o endereço, e após isso eu queria que um webservice buscasse o CEP correto para eu preencher no campo do CEP, só para não ficar vazio.
Entendeu?
Abraços
Entra nesse endereço e baixe o banco de dados de CEPs
http://www.republicavirtual.com.br/cep/
ou pelo link direto:
http://www.republicavirtual.com.br/cep/download/cep.sql.bz2
dai é só cadastrar no seu BD e fazer a busca por onde quiser... =]
>
Entra nesse endereço e baixe o banco de dados de CEPs
http://www.republica...ual.com.br/cep/
ou pelo link direto:
http://www.republica...oad/cep.sql.bz2
dai é só cadastrar no seu BD e fazer a busca por onde quiser... =]
Acho que é a solução http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif... vou fazer isso amanhã ou depois de amanhã... logo depois se der certo eu falo pra vcs, e quem sabe, até preparo um webservice que faça isso e coloque no ar pra vcs utilizarem...
Abraços!
Amigão, presente:
BuscarCEP.php
<?php
/**
* Faz uma busca pelo CEP retornando o logradouro ou pelo logradouro retornando o CEP
*/
class BuscarCEP {
/**
* Caminho do serviço
*/
const URL = 'http-~~-//www.buscarcep.com.br/';
/**
* Inicia o objeto
*/
public function __construct(){
if ( !function_exists( 'curl_init' ) )
throw new RuntimeException( 'É necessário que cURL esteja instalada para fazer a busca' );
}
/**
* Busca um CEP pelo logradouro
* @param string $logradouro O nome do logradouro
* @param string $cidade A cidade
* @param string $bairro O bairro
* @param string $tipo O tipo do logradouro: Rua, Avenida....
* @return array
*/
public function &buscaLogradouro( $logradouro , $cidade , $bairro = null , $tipo = null ){
$data = array(
'formato' => 'xml',
'logradouro' => $logradouro,
'cidade' => $cidade
);
if ( $bairro ) $data[ 'bairro' ] = $bairro;
if ( $tipo ) $data[ 'tipo_logradouro' ] = $tipo;
return $this->busca( $data );
}
/**
* Busca um logradouro pelo CEP
* @param string $cep O CEP que será buscado
* @return array
*/
public function &buscaCEP( $cep ){
$data = array(
'formato' => 'xml',
'cep' => $cep
);
return $this->busca( $data );
}
/**
* Faz a busca
* @param array $data
* @return array
*/
private function &busca( array $data ){
$ret = array();
if ( $curl = curl_init() ){
curl_setopt( $curl , CURLOPT_HEADER , 0 );
curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt( $curl , CURLOPT_URL , sprintf( '%s?%s' , self::URL , http_build_query( $data ) ) );
$xml = curl_exec( $curl );
$ern = curl_errno( $curl ); $err = curl_error( $curl );
curl_close( $curl );
if ( !$ern ){
$dom = new DOMDocument();
$dom->loadXML( $xml );
$ret =& $this->parseXML( $dom );
} else throw new RuntimeException( $err , $ern );
}
return $ret;
}
/**
* Interpreta o XML de retorno
* @param DOMDocument &$dom
* @return array Lista de resultados
*/
private function &parseXML( DOMDocument &$dom ){
$ret = array();
$xpath = new DOMXPath( $dom );
foreach ( $xpath->query( './/retorno' ) as $retorno ){
$bcr = new BuscarCEPResult();
foreach ( $xpath->query( '*' , $retorno ) as $element ){
switch ( $name = $element->nodeName ){
case 'cep':
case 'uf':
case 'cidade':
case 'tipo_logradouro':
case 'resultado_txt':
$bcr->$name = $element->nodeValue;
break;$bcr->$name = (int) $element->nodeValue;
break;
}
}
$ret[] = $bcr;
}
return $ret;
}
}
BuscarCEPResult.php
/**
* Resultado de uma busca BuscarCEP
*/
class BuscarCEPResult {
/**
* O CEP
* @var string
*/
public $cep;
/**
* Unidade Federativa
* @var string
*/
public $uf;
/**
* Cidade
* @var string
*/
public $cidade;
/**
* O tipo do logradouro (Rua, Avenida,...)
* @var string
*/
public $tipo_logradouro;
/**
* Código do resultado
* <p>
* 1 - sucesso. cep encontrado
* -1 - cep não encontrado
* -2 - formato de cep inválido
* -3 - limite de buscas de ip por minuto excedido
* -4 - ip banido. contate o administrador
* -5 - chave banida. contate o administrador
* -6 - entre 0 e 6 horas da madrugada todas as buscas são limitadas a 10 buscas por minuto
* </p>
* @var integer
*/
public $resultado;
/**
* Descrição do código do resultado
* @var string
*/
public $resultado_txt;
}
Para usar:
<?php
try {
$busca = new BuscarCEP();
var_dump( $busca->buscaLogradouro( 'Ituverava' , 'Franca' ) );printf( 'Opz, Erro[ %d ]: %s' , $e->getCode() , $e->getMessage() );
}
Tanto o método buscaLogradouro quanto o método buscaCEP devolvem uma matriz de resultados, que você poderá iterar segundo a necessidade.
;)
OOOMMMMGGGG... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Valewwwwwwwwwwwwwww João Batistaa... tu é f*** velho!!!
Funcionou certinho, agora só vou formatar o resultado aqui pra colocar no form corretamente ^^
Abraçooooos meu amigoooo, vlw mesmo.
Meu aniversário é em novembro 27, mas aceito esse teu presente antecipado ^^, não vou esquecer no dia... :D
Abraços!
Bom dia amigos!
fui tentar usar esse código gerou o seguinte erro --> Fatal error: Class 'BuscarCEP' not found
tenho certeza que não estou sabendo como implementar, pois não tenho muita experiência em php!
Poderiam me ajudar por favor!
Obrigado!
Este é um tópico antigo, por favor, faça posts de soluções e dúvidas em tópicos recentes.
O problema é que um mesmo endereço podem te responder vários CEPs, já que podem haver erros de digitação, ruas que possuem nomes parecidos/iguais..
O banco que você puxa o endereço pelo CEP é seu? ou um webservice? ele possibilita enviar o endereço?(acho dificil)