Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    16

    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
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    47

    RE: aprire un .txt con puntatore all'inizio

    non mi sembra una gran idea quella di usare le opzioni di fopen. ti consiglierei di leggere il contenuto del file con file_get_contents() (oppure con fread() impostando la dimensione del buffer) e poi gestire da codice l'accodamento delle stringhe.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    16
    e poi gestire da codice l'accodamento delle stringhe.
    ehm.. come?

    ma un modo per fargli scrivere all'inizio senza sovrascrivere niente non c'è? sarebbe la cosa più semplice...

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    47

    RE: aprire un .txt con puntatore all'inizio

    Codice PHP:

    $filename
    ="YourFile.txt";

    // recupera il contenuto del commento
    $comment=$_POST["comment"];

    // recupera il contenuto del file
    $content=file_get_contents($filename);

    // accoda il contenuto del file mettendo l'ultimo commento in testa
    $content=$comment.$content;

    // salva il contenuto nel file
    $handle=fopen($filename"a");
    fwrite($handle$content);
    fclose($handle); 

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    16
    ora lo provo ma a intuito non mi torna una cosa: tu leggi il file e lo memorizzi in $content, poi concateni $comment con $content. a questo punto apri il file in modalità "a" e ci aggiungi $comment.$content: il risultato non dovrebbe essere quello di riscrivere una seconda volta tutto il contenuto del file piu quello che c'è in $comment?
    ovvero, non dovrebbe aprirsi in modalità "w" il file per riscriverlo da zero con il messaggio nuovo ($comment) piu quello che c'era prima ($content)?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    47

    RE: aprire un .txt con puntatore all'inizio

    si scusa, l'opzione giusta e' w

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    16
    perfetto, ti ringrazio mi sei stato utilissimo

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    16
    già che ci sono, è possibile impostare una dimensione massima del file di testo?

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    47

    RE: aprire un .txt con puntatore all'inizio

    Codice PHP:
       if (filesize($filename) >= (4096 1024)) { // 4 megabytes
             
    echo "Il file e' troppo grande";
             exit;
       } 

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    16
    io intendevo una cosa silenziosa che raggiunta una certa dimensione tagliava i messaggi vecchi alla fine del file in eccesso (anche se li taglia a metà chissenefrega tanto sono in fondo alla pagina e non si vedono)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.