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

    eliminare righe vuote da txt

    Salve,

    Io ho un file txt con un contenuto del tipo:

    124
    2324
    4
    1
    4343

    Io utilizzo questo codice per eliminare del testo dal txt
    Codice PHP:
    $id='1';
    $file=file("coda1.txt");
    for(
    $i=0;$i<count($file);$i++) {
        
    $file[$i]=explode("|",trim($file[$i]));
        if (
    $file[$i][0]=="$id")
            
    $file[$i][0]="";
    }
    $fp=fopen("coda1.txt","w");
    for(
    $i=0;$i<count($file);$i++) {
        
    $file[$i]=implode("|",$file[$i]);
        
    fwrite($fp,$file[$i]."\n");
    }
    fclose($fp); 
    Il problema è che nel file txt rimane una riga vuota al posto del numero cancellato, quindi ottenendo qualcosa del genere:

    124
    2324
    4

    4343

    Come posso far per ottenere questo:

    124
    2324
    4
    4343

    Grazie in anticipo

  2. #2

    Re: eliminare righe vuote da txt

    Originariamente inviato da peppescocuzza

    Codice PHP:

        
    if ($file[$i][0]=="$id")
            
    $file[$i][0]=""
    secondo me questo pezzo di codice ti ricrea la riga vuota,
    prova così:

    Codice PHP:
     $nome_file "coda1.txt";
      
    $riga_da_canc $id;
      
    $file file$nome_file );
      
    $num_righe count($file);
      
    $fp fopen$nome_file"w" );
      for(
    $i=0$i<$num_righe$i++) 
      {
      if(
    $i != ($riga_da_canc) )
      
    fwrite($fp$file[$i]);
      }
      
    fclose$fp ); 
    Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
    citando Adorno nell notti chiare / finché il primate stanco di ascoltare
    lo strangolò con una sciarpa gialla Dillo Con Parole Sue

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Ti ho fatto una piccola funzione che ti dovrebbe risolvere il problema


    Codice PHP:
    function rimuoviLineaCon($l,$file){
        if(
    file_exists($file)){
            
    $content file($file);
            foreach(
    $content as $line => $value) if($value==$l) unset($content[$line]);
            
    file_put_contents($file,join('',$content));
            
        }
    }

    //esempio, rimuoviamo la linea col numero 1
    rimuoviLineaCon(1,'coda1.txt'); 

  4. #4
    non funzionano nessuno dei 2 codici, anzi nel file txt mi inserisce nuovamente un altro id

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da peppescocuzza
    non funzionano nessuno dei 2 codici, anzi nel file txt mi inserisce nuovamente un altro id
    Bah strano, a me funziona, comunque mi è venuto un dubbio, prova un attimo a modificare l'if cosi

    Codice PHP:
    if($value==(int)$l) unset($content[$line]); 

  6. #6
    ti posto tutto un file che io uso da tempo, basta cambiare il nome del file di testo.

    <?php
    if(isset($_POST['cancella'])){
    $riga = $_POST['riga'];
    $nome_file = "corsa.txt"; //

    $arrFp = file( $nome_file ); // tutte le righe del file in un array
    $num_righe = count( $arrFp ); // Counto le righe

    $fp = fopen( $nome_file, "w" ); // Apro il file per leggere
    for($i=0; $i<$num_righe; $i++) // Scrivo tutte le righe tranne quella da cancellare
    {
    if($i != ($riga) )
    fwrite($fp, $arrFp[$i]);
    }
    fclose( $fp ); // Close the file
    echo " riga cancellata con successo
    cancella vedi punteggi";
    exit;
    }

    else

    $leggi_dati = file("corsa.txt") ; //creo un array delle righe del file


    $num_msg = count($leggi_dati); //conto le righe del file

    //creo un ciclo per ottenere l'array dei dati
    for($c=0;$c<$num_msg;$c++){
    $dato = $leggi_dati[$c];
    $num = $c+1;
    //visualizzo i dati
    $pagina=$_SERVER['PHP_SELF'];

    echo "$dato";
    echo "<FORM ACTION=\"$pagina\" METHOD=\"POST\">";
    echo "
    ";
    echo "<input name='riga' type='hidden' size= '3' value='$c'><input type='submit' name= 'cancella'value='cancella' id= 'bottoni'></form>";
    echo "<hr> ";
    }


    ?>
    Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
    citando Adorno nell notti chiare / finché il primate stanco di ascoltare
    lo strangolò con una sciarpa gialla Dillo Con Parole Sue

  7. #7
    Qui due modi facili per eliminare le righe vuote da qualsiasi file di testo:
    - http://galileo2010.blogspot.it/2014/...a-file-di.html
    - http://galileo2010.blogspot.it/2014/...iasi-file.html
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.