Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    fopen: mode "r+" oppure "w"?

    Ho una pagina php che mi genera un file di log (formato testuale) con le visite dei vari bot nel mio sito. Ogni visita da parte di un bot dà origine ad una linea di testo nel file di log, con una serie di informazioni a me utili. Inizialmente la scrittura del file avveniva mediante la modalità "a" di fopen, ma non mi piaceva perché le visite più recenti finivano in fondo al file, mentre io preferirei mantenere un ordine cronologico inverso (prima le visite più nuove). Che modalità devo usare? "r+" p "w"?

    Grazie.

    M
    IN OMNIA PERICVLA TASTA TESTICVLA

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: fopen: mode "r+" oppure "w"?

    Originariamente inviato da Marcy1982
    Ho una pagina php che mi genera un file di log (formato testuale) con le visite dei vari bot nel mio sito. Ogni visita da parte di un bot dà origine ad una linea di testo nel file di log, con una serie di informazioni a me utili. Inizialmente la scrittura del file avveniva mediante la modalità "a" di fopen, ma non mi piaceva perché le visite più recenti finivano in fondo al file, mentre io preferirei mantenere un ordine cronologico inverso (prima le visite più nuove). Che modalità devo usare? "r+" p "w"?
    Il problema non è la modalità di apertura!!!
    Non puoi in modo semplice e veloce inserire del testo in mezzo (o in testa) ad un file. Dovresti creare ogni volta un nuovo file, scrivere la linea e poi accodare tutto il contenuto del file vecchio. Soluzione poco comoda e addirittura impensabile se il file raggiunge dimensioni ragguardevoli.

    O accodi sempre al fondo al file (quindi con il modo "a") oppure utilizzi un database vero e proprio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    di solito si fa così: crea un file di visualizzazione dei dati con questa semplice mofica quando leggi le righe:
    //lleggo il file riga per riga
    $righe_msg = file("dati/dati.txt");
    //inverto l'ordine dei messaggi
    $righe_msg = array_reverse( $righe_msg);
    eccetera

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    29
    Originariamente inviato da nivasio
    di solito si fa così: crea un file di visualizzazione dei dati con questa semplice mofica quando leggi le righe:
    //lleggo il file riga per riga
    $righe_msg = file("dati/dati.txt");
    //inverto l'ordine dei messaggi
    $righe_msg = array_reverse( $righe_msg);
    eccetera
    Non è più facile con fseek puntare all'inizio del file per scrivere all'inizio?

  5. #5
    Originariamente inviato da A5gar0th
    Non è più facile con fseek puntare all'inizio del file per scrivere all'inizio?
    Soprattutto è più facile criticare le risposte altrui che spiegare il proprio pensiero ..noto
    almeno io ho spiegato come fare.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da A5gar0th
    Non è più facile con fseek puntare all'inizio del file per scrivere all'inizio?
    No assolutamente!!! Se anche ti sposti all'inizio del file, puoi solo sovrascrivere, non inserire del testo. Il contenuto di un file non si "sposta" in avanti magicamente per poter inserire roba in mezzo/in testa!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    29
    Originariamente inviato da andbin
    No assolutamente!!! Se anche ti sposti all'inizio del file, puoi solo sovrascrivere, non inserire del testo. Il contenuto di un file non si "sposta" in avanti magicamente per poter inserire roba in mezzo/in testa!
    Hai ragione, mea culpa.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    29
    Originariamente inviato da nivasio
    Soprattutto è più facile criticare le risposte altrui che spiegare il proprio pensiero ..noto
    almeno io ho spiegato come fare.
    Ecco che arriva ciccio bello offeso. Ho espresso il mio parere (tra l'altro sbagliato come ha fatto notare andbin) e tu te la prendi? Mah.

  9. #9
    Vi ringrazio tutti, ed in particolare nivasio: array_reverse( $righe_msg);è quello che ci voleva. In pratica mantengo la modalità di scrittura in "append", ma quando leggo il file lo giro al contrario. Perfetto.

    Mi raccomando, non litigate.

    ciao.
    IN OMNIA PERICVLA TASTA TESTICVLA

  10. #10
    Originariamente inviato da A5gar0th
    Ecco che arriva ciccio bello offeso. Ho espresso il mio parere (tra l'altro sbagliato come ha fatto notare andbin) e tu te la prendi? Mah.
    ciccia bella cmq

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.