Skip to content

Instantly share code, notes, and snippets.

@rbarros
Created February 25, 2014 21:21
Show Gist options
  • Save rbarros/9218072 to your computer and use it in GitHub Desktop.
Save rbarros/9218072 to your computer and use it in GitHub Desktop.
<?php
/**
* Requisição Ajax public/js/main.js:111
* Busca informações de cep (endereco, bairro, cidade e uf)
* @url POST /carrinho/cep
* @return json retorna um json para o script
*/
function cep($cep=null)
{
$input = Input::all();
$array = array();
$cep = (is_null($cep))?$input['cep']:$cep;
if(isset($cep)){
$url = 'http://m.correios.com.br/movel/buscaCepConfirma.do?cepEntrada='.$cep.'&tipoCep=&cepTemp=&metodo=buscarCep';
$content = @file_get_contents($url);
$content = preg_replace( "/[\a\b\e\f\v\n\r\t]*/", '', $content);
if( preg_match( '/<di(v)? class="caixacampobranco">.*<div style="text-align: right;" class="mopcoes orientacao">/', $content, $data ) ) {
$content = $data[0];
if( preg_match_all( '/(<span[^>]+>[^>]+<\/span>)/', $content, $data ) ) {
$content=$data[0];
$arrKey = null;
foreach ($content as $key => $value) {
if($key%2==0){
$arrKey = explode(' ', str_replace(':','',strip_tags(strtolower($value))));
$arrKey = $arrKey[0];
}else{
$value = strip_tags(utf8_encode($value));
$array[$arrKey]=$value;
}
}
$json['valid'] = 'valid';
$json['logradouro'] = isset($array['logradouro']) ? trim($array['logradouro']) : '';
$json['bairro'] = isset($array['bairro']) ? trim($array['bairro']) : '';
$json['localidade'] = isset($array['localidade']) ? trim($array['localidade']) : '';
$localidade = explode('/', $json['localidade']);
$json['localidade'] = trim(current($localidade));
$json['uf'] = end($localidade);
$json['cep'] = isset($array['cep']) ? trim($array['cep']) : '';
return json_encode($json);
} else {
return json_encode(array('error'=>'cep','valid' => 'invalid'));
}
} else {
return json_encode(array('error'=>'cep', 'valid' => 'invalid'));
}
}else{
return json_encode(array('error'=>'cep', 'valid' => 'error'));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment