• User •

    script per sovrascrivere riga con lo stesso nome

    Buongiorno a tutti. Ho un file txt dove, tramite un modulo, vengono inviati e impressi il nome dell'utente e la data. Avrei bisogno di uno script che sovrascriva i dati con lo stesso nome, aggiornando la riga con la nuova data.
    Per esempio, se nel file txt ho questi dati:

    Pippo;20-10.2022
    Tizio;2-11-2022
    Caio;15-11-2022

    e l'utente Pippo invia il modulo in data più recente:

    Pippo;12-12-2022

    I suoi dati vecchi dovrebbero essere sovrascritti da quelli nuovi:

    Tizio;2-11-2022
    Caio;15-11-2022
    Pippo;12-12-2022

    Non necessariamente accodati, possono anche restare nella posizione precedente, ma con la data aggiornata.
    Al momento, ho uno script (destinato ad altro) che cancella i dati scaduti da un anno. Non so se si può modificare per ciò di cui ho bisogno.
    Questo è lo script:

    <?php
    $txt_file    = file_get_contents('data.txt');
    $rows        = explode("\n", $txt_file);
    
    unlink('data.txt');
    $new_file = fopen('data.txt', 'a+');
    foreach($rows as $row)
    {
        $data = explode(';', $row);
        if( ( strtotime($data[2]) + 31536000 ) >= time() ) {
            fwrite( $new_file, $row . "\n" );
        }
    }
    fclose( $new_file ); 
    ?>
    

    Grazie mille a chi potrà e vorrà darmi una mano


  • Moderatore •

    prova così....
    esplodi il file sugli "a capo"/ new line
    poi esplodi ogni linea sul ";"
    dopo di che cicli, modifichi le date e implodi il tutto

    se vuoi prova a scrivere qui il codice


  • User •

    Ciao, scusa per la risposta tardiva, ma non avevo visto la mail. Purtroppo non so fare quello che mi hai suggerito. Speravo in un codice già scritto, ma, se non è possibile per le regole del forum, non importa, comprendo. Tengo, comunque, da conto i suggerimenti e continuo a cercare. Grazie ugualmente per l'aiuto.