Non specificare il numero di byte da leggere se vuoi leggere una riga, quello è il comportamento di default. Quando usi explode, non è detto che il risultato sia un vettore con 2 elementi: se scegli questa strada del "fare a mano", devi anche realizzare a mano tutti i controlli!
Codice PHP:
function get_people($filepath) {
$data = array();
$fh = fopen($filepath, "r");
if (!$fh) {
return $data;
}
while (($line = fgets($fh)) !== false) {
$fields = explode("|", $line);
if (count($fields) >= 2) {
$data[] = array(
'nome' => $fields[0],
'teleono' => $fields[1]
);
}
}
fclose($fh);
return $data;
}
Puoi quindi processare/stampare i dati come vuoi:
Codice PHP:
$persone = get_people("presepi.txt");
foreach ($persone as $persona) {
echo $persona['nome'] . " - " . $persona['telefono'];
}