Login   Register  
PHP Classes
elePHPant
Icontem

File: esempio.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Michele Brodoloni  >  Calcolo Codice Fiscale  >  esempio.php  >  Download  
File: esempio.php
Role: Example script
Content type: text/plain
Description: Script di esempio
Class: Calcolo Codice Fiscale
Generate the fiscal code for people in Italy
Author: By
Last change: nuovo file di esempio
Date: 1 month ago
Size: 3,158 bytes
 

Contents

Class file image Download
<?php

require_once 'codicefiscale.class.php';

/**
 * In questo esempio ho esteso la classe CodiceFiscale_Abstract ed ho
 * implementato il metodo astratto _calcolaCatastale() per andare a leggere
 * un file contenente un array nel formato [CODICE_PROVINCIA][NOME_COMUNE]
 * e caricarlo in una variabile..
 * 
 * Ovviamente √® possibile implementare il metodo per recuperare il catastale
 * a piacimento (database, webservice, ecc...)
 */
class CodiceFiscale extends CodiceFiscale_Abstract {
    
    private 
$_db;
    
    public function 
leggiCatastali($filename) {
        
$this->_db unserialize(file_get_contents($filename));
    }
    
    protected function 
_calcolaCatastale() {
        if (!
$this->_db) {
            throw new 
CodiceFiscale_Exception('impossibile caricare il file dei catastali');
        }
        
$comune    strtoupper($this->comune);
        
$provincia strtoupper($this->provincia);
        if (!isset(
$this->_db[$provincia][$comune])) {
            
$message sprintf("codice catastale non trovato (provincia: %s, comune: %s)"$provincia$comune);
            throw new 
CodiceFiscale_Exception($message);
        }
        return 
$this->_db[$provincia][$comune];
    }
}

// funzione di comodit√† per generare un array da passare alla classe
function componi($nome$cognome$data$comune$provincia$sesso) {
    return [
       
'nome'      => $nome,
       
'cognome'   => $cognome,
       
'data'      => $data,
       
'comune'    => $comune,
       
'provincia' => $provincia,
       
'sesso'     => $sesso 
    
];
}

// istanzio la classe e carico il db dei catastali
$cf = new CodiceFiscale();
$cf->leggiCatastali('catastali.txt');
$dati = array();

// Non validi
$dati[] = componi(null'cognome''01-01-1970''milano''mi''m');
$dati[] = componi('nome'null'01-01-1970''milano''mi''m');
$dati[] = componi('nome''cognome'null'milano''mi''m');
$dati[] = componi('nome''cognome''01-01-1970'null'mi''m');
$dati[] = componi('nome''cognome''01-01-1970''milano'null'm');
$dati[] = componi('nome''cognome''01-01-1970''milano''mi'null);
$dati[] = componi('nome''cognome''565-55-5555''milano''mi''m');

// Validi
$dati[] = componi('A''B''01-05-1977''rho''mi''m');
$dati[] = componi('A''B''01-05-1977''rho''mi''f');
$dati[] = componi('Matteo''De Gasperi''15-09-2001''roma''rm''m');
$dati[] = componi('Ramona''Si''21-12-1982''senago''mi''f');
$dati[] = componi('Babbo''Natale''25-12-1938''Cinisello Balsamo''MI''m');

foreach(
$dati as $persona) {
    try {
        
$cf->importa($persona);
        print 
"Codice Fiscale: "$cf->calcola() . "\n";
    } catch (
CodiceFiscale_Exception $e) {
        print 
"Errore: "$e->getMessage() . "\n";
        continue;
    }
}

// Metodo alternativo
$cf->nome 'Me';
$cf->cognome 'Medesimo';
$cf->data '09-09-1982';
$cf->comune 'senago';
$cf->provincia 'mi';
$cf->sesso 'm';

print 
"Codice Fiscale (alternativo): "$cf->calcola() . "\n";

$cf->formatoData('d/m/Y');
$cf->data '09/09/1982';

print 
"Codice Fiscale (alternativo): "$cf->calcola() . "\n";