Visualizzazione risultati 1 fino 8 di 8

Discussione: aprire un .txt con puntatore all'inizio

  1. #1
    Guest

    Predefinito aprire un .txt con puntatore all'inizio

    Ciao ragazzi, avevo pensato di fare una cosa molto semplice tipo blog, un semplice file .txt dove con un form l'utente può lasciare un commento.
    Ora all'inizio avevo pensato di aprirlo in modalità "a", ma in questo modo scrive alla fine, e quindi quando il file viene visualizzato ci sono in alto i messaggi vecchi e quelli nuovi vanno a perdersi in fondo.
    Io invece vorrei esattamente il contrario.
    Allora ho visto che il file puo essere aperto in modalità "r+", ovvero lettura+scrittura con puntatore all'inizio: peccato che facendo in questo modo scrivendo all'inizio i caratteri vanno a sovrascrivere quelli che già ci sono...
    Dunque si tratterebbe di scrivere all'inizio del file senza sovrascrivere quello che già c'è: è possibile?

    In alternativa avevo pensato a lasciare in modalità "a" e avvalermi di un qualche script che mi visualizzi il file "al contrario": dopo ogni messaggio viene inserito un ritorno a capo con \n, quindi si potrebbe leggere l'ultima riga e visualizzarla, poi la penultima, e cosi via per tutta la lunghezza del file. E' possibile anche questo?

    vi ringrazio

  2. #2
    Guest

    Predefinito

    Citazione Originalmente inviato da shony
    Ciao ragazzi, avevo pensato di fare una cosa molto semplice tipo blog, un semplice file .txt dove con un form l'utente può lasciare un commento.
    Ora all'inizio avevo pensato di aprirlo in modalità "a", ma in questo modo scrive alla fine, e quindi quando il file viene visualizzato ci sono in alto i messaggi vecchi e quelli nuovi vanno a perdersi in fondo.
    Io invece vorrei esattamente il contrario.
    Allora ho visto che il file puo essere aperto in modalità "r+", ovvero lettura+scrittura con puntatore all'inizio: peccato che facendo in questo modo scrivendo all'inizio i caratteri vanno a sovrascrivere quelli che già ci sono...
    Dunque si tratterebbe di scrivere all'inizio del file senza sovrascrivere quello che già c'è: è possibile?

    In alternativa avevo pensato a lasciare in modalità "a" e avvalermi di un qualche script che mi visualizzi il file "al contrario": dopo ogni messaggio viene inserito un ritorno a capo con \n, quindi si potrebbe leggere l'ultima riga e visualizzarla, poi la penultima, e cosi via per tutta la lunghezza del file. E' possibile anche questo?

    vi ringrazio
    fai così
    $file = file_get_contents( "nomeDelFile.txt");
    $nuovofile = $nuovoMsg . $file;

    e poi riscrivi il documento :)))

  3. #3
    Guest

    Predefinito

    hai ragione grazie
    posso impostare anche una dimensione massima del file?

  4. #4
    Guest

    Predefinito

    puoi anche leggere il contenuto dalla fine all'inzio quando lo stampi:

    $file = file('database.txt');
    $array = array_reverse($file);

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da jostock
    puoi anche leggere il contenuto dalla fine all'inzio quando lo stampi:

    $file = file('database.txt');
    $array = array_reverse($file);
    ma in questo modo mi stamperebbe tutti i caratteri al contrario... come faccio a dirgli "prendi l'ultima riga e stampala, poi la penultima, etc."?

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da shony
    hai ragione grazie
    posso impostare anche una dimensione massima del file?
    se per esempio non vuoi che il file superi $maxBytes fai

    $file = file_get_contents("blog.txt");
    $blogSize = strlen( $file );

    $newPostSize = strlen( $newPost );

    if($newPostSize + $blogSize > $maxSize ) {
    ...
    ...
    }

  7. #7
    Guest

    Predefinito

    intendevo una cosa diversa, bloccare il file a una certa dimensione in modo che automaticamente tagli l'ultima parte del file in eccesso: in questo modo i messaggi vecchi eccedenti la dimensione massima verrebbero tagliati (anche se a metà del messaggio chissenefrega, tanto stanno in fondo alla pagina e non si vedono)

  8. #8
    Guest

    Predefinito

    allora fai così:
    ipotizziamo che tu voglia al max $maxLenght (questo c'è sempre).

    $file = file_get_contents("blog.txt");

    $newFile = $newMessage . $file;

    $newFile = sub_str($newFile, 0, $maxLenght);

    e poi scrivi il file...

    ti scriverà sempre e comunque al massimo la quantità di bytes che desideri

Regole di scrittura

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