Una classe PHP per recuperare regioni province e citta da file
class CRegione { var $id; var $ripartizioneGeografica; var $codice; var $nome; function CRegione($id, $ripartizioneGeografica, $codice, $nome) { $this->id = trim($id); $this->ripartizioneGeografica = trim($ripartizioneGeografica); $this->codice = trim($codice); $this->nome = trim($nome); } function CreaTabellaSQL() { return "CREATE TABLE regioni(id int not null auto_increment primary key, ripartizione_geografica tinytext, codice int, nome tinytext);\n"; } function GeneraSQL() { $arrValori = array( '"'.$this->ripartizioneGeografica.'"', '"'.$this->codice.'"', '"'.$this->nome.'"' ); $strValori = implode(',', $arrValori); $sql="INSERT INTO regioni(ripartizione_geografica, codice, nome) VALUES (".$strValori.");\n"; return $sql; } }
class CProvincia { var $id; var $codiceRegione; var $codice; var $nome; var $sigla; function CProvincia($id, $codiceRegione, $codice, $nome, $sigla) { $this->id = trim($id); $this->codiceRegione = trim($codiceRegione); $this->codice = trim($codice); $this->nome = trim($nome); $this->sigla = trim($sigla); } function CreaTabellaSQL() { return "CREATE TABLE province(id int not null auto_increment primary key, codice_regione int, codice int, nome tinytext, sigla tinytext);\n"; } function GeneraSQL() { $arrValori = array( '"'.$this->codiceRegione.'"', '"'.$this->codice.'"', '"'.$this->nome.'"', '"'.$this->sigla.'"' ); $strValori = implode(',', $arrValori); $sql="INSERT INTO province(codice_regione, codice, nome, sigla) VALUES (".$strValori.");\n"; return $sql; } } class CComune { var $id; var $codiceProvincia; var $codice; var $nome; function CComune($id, $codiceProvincia, $codice, $nome) { $this->id = trim($id); $this->codiceProvincia = trim($codiceProvincia); $this->codice = trim($codice); $this->nome = trim($nome); } function CreaTabellaSQL() { return "CREATE TABLE comuni(id int not null auto_inc rement primary key, codice_provincia int, codice int, nome tinytext);\n"; } function GeneraSQL() { $arrValori = array( '"'.$this->codiceProvincia.'"', '"'.$this->codice.'"', '"'.$this->nome.'"' ); $strValori = implode(',', $arrValori); $sql="INSERT INTO comuni(codice_provincia, codice, nome) VALUES (".$strValori.");\n"; return $sql; } } // Inizializza gli array $arrRegioni = array(); $arrProvince = array(); $arrComuni = array(); // LEGGE IL FILE DELLE REGIONI E PROVINCE $fh = fopen('regioni_province.csv', 'r'); fgets($fh, 4096); // Salta la prima riga while (!feof($fh)) { $buffer = fgets($fh, 4096); $arrTemp = split(';',$buffer); list($ripartizioneGeografica, $codiceRegione, $nomeRegione, $codiceProvincia, $nomeProvincia, $siglaProvincia) = $arrTemp; // Aggiunge la regione in archivio $regione = new CRegione($codiceRegione, $ripartizioneGeografica, $codiceRegione, $nomeRegione); if ($nomeRegione != '') $arrRegioni[$codiceRegione] = $regione; $provincia = new CProvincia($codiceProvincia, $codiceRegione, $codiceProvincia, $nomeProvincia, $siglaProvincia); if ($nomeProvincia != '') $arrProvince[$codiceProvincia] = $provincia; } fclose($fh); // LEGGE IL FILE DEI COMUNI $fh = fopen('comuni.csv', 'r'); fgets($fh, 4096); // Salta la prima riga while (!feof($fh)) { $buffer = fgets($fh, 4096); $arrTemp = split(';',$buffer); list($codiceProvincia, $codiceComune, $nomeComune) = $arrTemp; // Aggiunge la regione in archivio $comune = new CComune($codiceComune, $codiceProvincia, $codiceComune, $nomeComune); if ($nomeComune != '') $arrComuni[$codiceComune] = $comune; } fclose($fh); $sql = CRegione::CreaTabellaSQL(); foreach($arrRegioni as $temp) { $sql.=$temp->GeneraSQL(); } $sql .= CProvincia::CreaTabellaSQL(); foreach($arrProvince as $temp) { $sql.=$temp->GeneraSQL(); } $sql .= CComune::CreaTabellaSQL(); foreach($arrComuni as $temp) { $sql.=$temp->GeneraSQL(); } // INVIA IL FILE SQL DELLE REGIONI $nomeFile = 'regioni_province_comuni.gzip'; $content = gzencode($sql); header("Content-type: Application/octet-stream"); header("Content-Disposition: attachment; filename=$nomeFile"); header("Content-Description: Download PHP"); header("Content-Length: ".strlen($content)); echo $content; ?>