Salve!
Sto cercando di leggere un file al contrario, so benissimo che posso farlo in 2 metodi:
uno semplice; l'altro non ci riesco proprio ad applicarlo
Per il primo metodo avevo pensato:
Codice PHP:
$f = array_reverse(file('file.txt'));
echo implode('', $f);
Mentre l'altro:
Codice PHP:
$db = fopen('db.php', 'r');
fseek($db, -1, SEEK_END); // mi sposto alla fine
/* un carattere alla volta
do {
echo fgetc($db);
} while(fseek($db, -2, SEEK_CUR) == 0);
*/
while(list($id, $time, $msg) = fscanf($db, '%d|%d|%s')) {
echo $id, PHP_EOL;
}
fclose($db);
Ma ovviamente non funziona. Qualcuno mi può aiutare? Non mi è molto chiaro come usare fseek!
P.S Ho provato anche direttamente:
Codice PHP:
while($linea = fscanf($db, '%d|%d|%s')) {
print_r($linea);
}
P.S 2: Per ora potrei risolvere, così. Leggo carattere per carattere e lo concateno in una stringa:
Codice PHP:
$l = array();
$s = '';
do {
$c = (string) fgetc($db);
$s .= $c;
if($c === PHP_EOL) {
$l[] = $s;
$s = '';
}
} while(fseek($db, -2, SEEK_CUR) == 0);
Ma non esiste qualcosa di più immediato? Con fscanf sarebbe perfetto :(
Grazie