Salve a tutti, sono alle prime armi con lo studio di php, mi sto esercitando facendo un'applicazione per il calcolo del codice fiscale.
Ho un problema quando devo analizzare il file di testo che contiene i codici relativi al comune di nascita.
Il file di testo è organizzato nella seguente maniera:
A001;ABANO TERME;PD
A002;ABBADIA SOPRA ADDA;CO
A003;ABBADIA ALPINA;TO
ecc ecc
Ho fatto una classe (comune.php) il cui compito è ricevere come input il comune e la provincia, dopodichè deve trovare nel file di testo il relativo codice:
class Comune
{
private $comune;
private $provincia;
private $codice;
function __construct($com,$pro)
{
$this->comune = strtoupper($com);
$this->provincia = strtoupper($pro);
}
function getCodice()
{
$handle = fopen ("codici_comuni_italiani.txt", "r");
while ( !feof( $handle ) )
{
$buffer = fgets($handle); // legge una riga intera da file
$buffer = rtrim($buffer); // rimuove carattere di return a fine riga
$array[] = explode (";", $buffer); // divide la stringa in tre rispetto al separatore ; usato nel file
if($array[1]==$this->comune and $array[2] == $this->provincia)
$this->codice = $array[0];
}
fclose ($handle); // The file pointed to by handle is closed.
return $this->codice;
}
}
Ma ottengo come errore : Undefined offset: 1 on line 34.
Ho provato anche in questo modo:
function getCodice()
{
$handle = fopen ("codici_comuni_italiani.txt", "r");
while ( !feof( $handle ) )
{
$buffer = fgets($handle); // legge una riga intera da file
$buffer = rtrim($buffer); // rimuove carattere di return a fine riga
list($codice, $comune, $provincia) = explode (";", $buffer); // divide la stringa in tre rispetto al separatore ; usato nel file
if ( $provincia == $this->provincia and $comune==$this->comune )
{
$this->codice = $codice;
}
}
fclose ($handle); // The file pointed to by handle is closed.
return $this->codice;
In questo caso mi da il seguente errore:
Undefined offset: 1 on line 30
Notice: Undefined offset: 2 on line 30
Notice: Undefined offset: 1 on line 30
Notice: Undefined offset: 2 on line 30
G482
Però mi trova il codice cercato.
Ho visto che questo tipo di errore generalmente indica che si vuole accedere a un campo dell'array che in realtà risulta vuoto(se non sbaglio...).
Dov'è che sbaglio?