Visualizzazione risultati 1 fino 4 di 4

Discussione: Eliminare una parte di righe su file txt

  1. #1
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito Eliminare una parte di righe su file txt

    Ciao a tutti , ho il seguente file e ho bisogno di un vostro aiuto,
    con qualche script in php vorrei lasciare solo le ultime 20 righe cancellando tutto il resto antecedente.
    Nb. il file si aggiorna ogni minuto, pertanto per non creare un elenco grandissimo vorrei lasciare nel file solo le ultime 20 o 30 righe. qualcuno può aiutarmi ?
    se può essere utile la terza colonna e un Timestamp e volendo si può uilizzare lasciando gli ultimi 20 minuti o 30 minuti.


    16-04-09|11:48|1460195280|20.3|44|12.5
    16-04-09|11:49|1460195340|20.3|43|12.3
    16-04-09|11:50|1460195400|20.4|43|12.2
    16-04-09|11:51|1460195460|20.4|42|12.3
    16-04-09|11:52|1460195520|20.4|43|12.6
    16-04-09|11:53|1460195580|20.4|42|12.8
    16-04-09|11:54|1460195640|20.4|41|12.5
    16-04-09|11:54|1460195640|20.4|41|12.7
    16-04-09|11:56|1460195760|20.4|40|13.8
    16-04-09|11:57|1460195820|20.4|40|13.3
    16-04-09|11:58|1460195880|20.5|42|13.5
    16-04-09|11:59|1460195940|20.5|41|13.6
    16-04-09|12:00|1460196000|20.5|41|13.8
    16-04-09|12:01|1460196060|20.5|41|14.0
    16-04-09|12:02|1460196120|20.5|41|13.9
    16-04-09|12:03|1460196180|20.5|41|13.7
    16-04-09|12:04|1460196240|20.5|41|13.7
    16-04-09|12:05|1460196300|20.5|41|13.7
    .........


    Grazie in anticipo

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    1. Leggi il file con la file()
    2. Implodi la stringa (implode()) usando solo gli ultimi 20 elementi dell'array generato da file().
    3. Riscrivi il file con la file_put_contents() con il contenuto che ti ha dato la implode().



    Ciao!

  3. #3
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito

    ciao alepoppo
    allora sono arrivato qua:

    $file = ('archivio.txt');// leggo il file
    $file_txt = @file($file);
    $i=count($file_txt) - 20; //conto le righe, partendo dall' ultima tolgo 20 righe
    for($a=0; $a<=$i; $a++){
    echo $file_txt[$a]."<br>"; //elenco delle rige da eliminare
    }
    adesso come proseguo.... mi dai una mano gentilmente...

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Perché la chiocciola davanti a file()? In quel modo non vedi eventuali errori dati da PHP in caso di problemi!
    Comunque $file_txt è l'array che ad ogni elemento contiene una riga del file.
    Ora devi prendere le ultime 20 righe, puoi farlo con la array_slice() passando come secondo parametro "-20".
    Poi prosegui con i passi 2 e 3 che ti ho indicato nel messaggio sopra.

    Ciao!

Regole di scrittura

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