mercoledì 12 dicembre 2012

Codice catastale di un comune Italiano

Qui potete visualizzare uno script in php per la ricerca del codice del comune, e il risultato che vi apparirà sarà il nome del comune, il suo codice, e la sigla della provincia:




Per l'elenco dei comuni ho creato un normale file di testo che incorporo con il codice:

<?php
    $pattern="/".$_POST[comune]."/i";
    //apre il file:
    $comuni=fopen("../inc/codici_catastali_comuni.txt","r");
    $i=0;
    if($_POST[comune]!=""){
        while (!feof($comuni)) {
            //ottiene riga per riga il file e lo asegna a buffer:
            $buffer = fgets($comuni, 4096);
            //se incontra i parametri di ricerca, inserisci un
            // nuovo valore al contenuto dell'array "stringa":
            if(preg_match($pattern,$buffer)){
                $stringa[$i]=$buffer;
                $i++;
            }
        }
        #chiude il file:
        fclose ($comuni);
    }
?>

UN PICCOLO APPUNTO:

Questa versione del programma è solo dimostrativa, in quanto questo codice non è perfetto, infatti, se mettiamo il nome di un comune che è simile ad un altro (es. Como e Zibido San Giacomo) il sistema prenderà l'ultimo in elenco corrispondente alla ricerca. Va quindi perfezionato, ma per lo scopo dimostrativo che ha per il momento è sufficiente per capire come ciclare il contenuto di un file riga per riga senza caricarlo tutto in memoria, a prescindere dalla sua dimensione. questa funzione, denominata fgets(), sarà utile quando su web, dove le risorse sono sempre "risicate", dovremo controllare file di grandi dimensioni.

Update: 17/12/2012

Effettuata la modifica del programmino, per avere un elenco ordinato in base alle occorrenze trovate. Inserire questo codice nel programma diventa così un lavoro piuttosto semplice dando la possibilità di inserire i dati corretti suggerendoli direttamente all'utente.


Questo è il codice per il risultato ciclato secondo il suo ordine alfabetico
(n.b.: è ordinato alfabeticamente il file, e quindi anche il suo risultato. Il file viene ciclato riga per riga, restituendo per ultimo l'ultima riga del file, a prescindere se esiste un ordine o meno. er ordinare comunque un array in php ci sono delle funzioni per le quali rimando al manuale. v. Man. Php Ita - Array Sort)

<?php
$y=1;
for($x=0;$x<count($stringa);$x++){
    $array=explode(" ",$stringa[$x],2);
    $codiceComune=$array[0];
    $nomeComune=substr($array[1],0,-6);
    $siglaProvincia=substr($stringa[$x], -4, 2); // Es MI
    print "<br>Risultato $y di $i:<br>Codice Comune: $codiceComune<br>Comune: $nomeComune<br>Provincia: $siglaProvincia<br>";
    $y++;
}
?>

Nessun commento:

Posta un commento

Stampa