Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- DESENVOLVIDO POR VICTOR TASSINARI MARTINS
- * 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("/<table id=\"municipios\">/s", $dados)) {
- $cidadesEstadosCompleto["erro"] = "Não foi encontrado nenhuma informação.";
- } else {
- #--- PEGO O CONTEÚDO DA TABELA ---------------------#
- preg_match("/<table id=\"municipios\">(.*)<\/table>/s", $dados, $saida);
- $vetDados = preg_split("/\n/", $saida[0]);
- $cont = 0;
- for ($j = 0; $j < count($vetDados); $j++) {
- if (preg_match("/<td class=\"nome\">(.*)<\/td>/s", $vetDados[$j], $saida1)) {
- $res[$cont]["nome"] = $saida1[1];
- $cont++;
- }
- if (key_exists($j + 1, $vetDados)) {
- if (preg_match("/<td class=\"gentilico\">(.*)<\/td>/s", $vetDados[($j + 1)], $saida2)) {
- $res[$cont - 1]["gentilico"] = $saida2[1];
- if (preg_match("/<td>(.*)<\/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}'); <br />";
- }
- }
- }
- 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]}'); <br />";
- }
- }
- }
- ?>
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta charset="utf-8" />
- </head>
- <body>
- <?php
- $estados = new cidadesEstados();
- $estados->criarSqlEstados();
- $estados->criarSqlCidades();
- ?>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment