Visualizzazione risultati 1 fino 1 di 1

Discussione: [PHP] Leggere un file al contrario (riga per riga)

  1. #1
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito [PHP] Leggere un file al contrario (riga per riga)

    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
    Ultima modifica di javascripter : 17-06-2010 alle ore 16.32.34

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •