• 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.