- /*
- DESENVOLVIDO POR GABRIEL WELLINGTON ANDRADE DOS SANTOS
- * gabrielwellington42@gmail.com
- * TESTADO APENAS LOCALMENTE, CUIDADO, VOCÊ PODE TER PROBLEMAS AO UTILIZAR EM UMA HOSPEDAGEM COMPARTILHADA.
- * O PROCESSO PODE DEMORAR VÁRIOS MINUTOS, DEPENDENDO DA LARGURA DE BANDA E PROCESSAMENTO DO SERVIDOR
- */
- #ISSO É IMPORTANTE, COMO SCRIPT DEMORA PARA PEGAR TODOS OS DADOS, REMOVI O TEMPO LIMITE DO PHP
- #TALVEZ SEJA NECESSÁRIO FAZER ESSA ALTERAÇÃO NO PHP.INI OU .HTACCESS
- set_time_limit(0);
- ini_set('max_execution_time', 0);
- class cidadesEstados {
- public $estados;
- public function __construct() {
- $this->estados = array("1|Acre|AC", "2|Alagoas|AL", "3|Amapá|AP", "4|Amazonas|AM", "5|Bahia|BA", "6|Ceará|CE", "7|Distrito Federal|DF", "8|Espírito Santo|ES", "9|Goiás|GO", "10|Maranhão|MA", "11|Mato Grosso|MT", "12|Mato Grosso do Sul|MS", "13|Minas Gerais|MG", "14|Pará|PA", "15|Paraíba|PB", "16|Paraná|PR", "17|Pernambuco|PE", "18|Piauí|PI", "19|Rio de Janeiro|RJ", "20|Rio Grande do Norte|RN", "21|Rio Grande do Sul|RS", "22|Rondônia|RO", "23|Roraima|RR", "24|Santa Catarina|SC", "25|São Paulo|SP","26|Sergipe|SE", "27|Tocantins|TO");
- }
- private function getPagina($estado) {
- $url = "http://www.cidades.ibge.gov.br/download/mapa_e_municipios.php?lang=&uf=".$estado;
- $ch = curl_init();
- $timeout = 15;
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
- $dados = curl_exec($ch);
- curl_close($ch);
- return $dados;
- }
- #--------- ESTE METODO RETORNA UM ARRAY ASSOCIATIVO COM OS DADOS ---------------#
- public function getDados() {
- $cidadesEstadosCompleto = array();
- for ($i = 0; $i < count($this->estados); $i++) {
- $res = array();
- $estado = explode("|", $this->estados[$i]);
- $dados = $this->getPagina($estado[2]);
- #---- VERIFICO SE EXISTE A TABELA COM OS DADOS -------#
- if (!preg_match("/
\"
municipios\">/s"
$cidadesEstadosCompleto["erro"] = "Não foi encontrado nenhuma informação.";
} else {
#--- PEGO O CONTEÚDO DA TABELA ---------------------#
preg_match("/\"
municipios\">(.*)<\/table>/s"
$vetDados = preg_split("/\n/", $saida[0]);
$cont = 0;
for ($j = 0; $j < count($vetDados); $j++) {
if (preg_match("/\" nome\">(.*)<\/td>/s"
$res[$cont]["nome"] = $saida1[1];
$cont++;
}
if (key_exists($j + 1, $vetDados)) {
if (preg_match("/\" gentilico\">(.*)<\/td>/s"
$res[$cont - 1]["gentilico"] = $saida2[1];
if (preg_match("/(.*)<\/td>/s" , $vetDados[($j + 2)], $saida3)) {
$res[$cont - 1]["populacao"] = $saida3[1];
}
}
}
}
$cidadesEstadosCompleto[$estado[0]] = $res;
}
}
//var_dump($cidadesEstadosCompleto);
return $cidadesEstadosCompleto;
}
public function getDadosJson() {
return json_encode($this->getDados(), JSON_PRETTY_PRINT);
}
public function criarSqlCidades() {
$dados = $this->getDados();
foreach ($dados as $id => $estado) {
foreach ($estado as $cidade) {
$cidade["nome"] = str_replace("'", "", $cidade["nome"]);
$cidade["gentilico"] = str_replace("'", "", $cidade["gentilico"]);
echo "INSERT INTO cidade (cid_nome, cid_gentilico, cid_populacao, cid_estado) VALUES ('{$cidade["nome"]}','{$cidade["gentilico"]}','{$cidade["populacao"]}','{$id}');
";
";
}
}
}
public function criarSqlEstados() {
for($i = 0; $i < count($this->estados);$i++) {
$estado = explode("|",$this->estados[$i]);
echo "INSERT INTO estado (est_id, est_nome, est_sigla) VALUES ('{$estado[0]}','{$estado[1]}','{$estado[2]}');
";
";
}
}
}
?>
$estados = new cidadesEstados();
$estados->criarSqlEstados();
$estados->criarSqlCidades();
?>