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

    PHP eliminare riga da file TXT

    Ciao a tutti
    sono davanti ad un problema ma non so dove sbaglio

    ho un file di testo che viene scritto continuamente da un form
    ogni riga è chiusa finisce con "\n"

    avrei bisogno che dopo 10 righe la prima si cancellasse stavo provando cosi:
    ve lo commento in modo che sia più chiaro e i più esperti posso aiutarmi a capire dove sbaglio

    $lines = file('miofile.txt');
    $count = count($lines);
    $numero_max = 10;

    //verifico che superi 10
    if ($count>$numero_max)
    {
    //splitto in un array
    $righe = explode("\n", "miofile.txt");

    //creo un nuovo array dove elimino il primo elemento
    $nuovotesto = array_shift($righe);

    //ricreo il nuovo testo dentro $newfile
    $newFile = implode("\n", $nuovotesto);

    //riscrivo il file txt con dentro il nuovo testo contenuto $newFile
    $var=fopen("miofile.txt","w");
    fwrite($var, $newFile);

    }

    semplice no? mi aspettavo che facesse il lavoro che volevo ma in realtà quando arriva a 10
    mi svuota tutto il file "miofile.txt"

    non so dove sbaglio la logica credo vada bene probabilmente sto usando male qualche comando? qualche aiuto?

    ciao e grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    $lines è già un array che contiene le righe del file una in ogni entry, che lo fai a fare questo?
    $righe = explode("\n", "miofile.txt");

    Usa direttamente $lines, anche perché penso che l'explode fatto su \n non funzioni, per quello ti svuota tutto, perché per PHP in $righe c'è una sola entry.

  3. #3
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Potresti provare qualche codice così
    Codice PHP:
    $content=file('myfile');
    $content=array_slice($content, -10);
    file_put_contents('myfile'implode(''$content)); 
    Non è testato però

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  4. #4
    Originariamente inviato da Alhazred
    $lines è già un array che contiene le righe del file una in ogni entry, che lo fai a fare questo?
    $righe = explode("\n", "miofile.txt");

    Usa direttamente $lines, anche perché penso che l'explode fatto su \n non funzioni, per quello ti svuota tutto, perché per PHP in $righe c'è una sola entry.
    Ciao Alhazred hai ragione $line è gia un array!! stupida distrazione mia!
    e mi ha risolto il problema,

    ti confermo che l'explode su \n me lo fa si comporta correttamente!

    grazie mille
    per un errore stupido stavo impazzendo!
    grazie per avermelo fatto notare.

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.