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

    AIUTO su funzione php apri file csv , modifica e salva

    Salve ragazzi
    uso una comodissima funzione php che ho sviluppato per leggere un file csv , modificarlo e risalvarlo con le modifiche
    Eccone un esempio:
    codice:
    <?php 
    print "<table border=1 width=90% >";
    $fd= fopen ("file.csv", "r");
    $destinazione = fopen('destinazione.csv', 'w');
    $x=0; 
    while (!feof ($fd))
    {     
    $riga=fgets($fd, 4096);     
    if($riga!="")     
    {    
    $arr=split(";", $riga);   
      
    $arr[3]= $arr[3] * 100; 
    
    
    print "<tr>";          
    print "<td>".$arr[0]."</td>";          
    print "<td>".$arr[1]."</td>";          
    print "<td>".$arr[2]."</td>";          
    print "<td>".$arr[3]."</td>";                     
    print "</tr>";         
    $x++;  
    }  
    
    $destinazione= array ($arr[0],$arr[1],$arr[3]);
    fputcsv($destinazione, $salva, $delimiter = ';');
    }
    print "";
    fclose($fd);
    flcose($destinazione);
    ?>
    mi occorre che il file salvato abbia un intestazione di colonne
    Come faccio a scriverla in questa funzione?
    Ci ho provato in tutti i modi ma non riesco.

    Confido nel vostro aiuto!

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, prima del while dove riporti le righe sul file appena letto , crea una riga statica con i nomi di colonna che vuoi.

  3. #3
    grazie mille del tuo aiuto!
    Perdonami ma mi potresti fare un piccolo esempio su come fare questa riga?

  4. #4
    riesco solo a stampare a video le intestazioni di colonne ma non appaiono poi nel file di destinazione csv che si salva...

    codice:
    <?php print "<table border=1 width=90% >";$fd= fopen ("file.csv", "r");
    $destinazione = fopen('destinazione.csv', 'w');
    // Intestazione Tabella
    print "<tr>";
    print "<td>COLONNA 1</td>";
    print "<td>COLONNA 2</td>";
    print "<td>COLONNA 3</td>";
    print "<td>COLONNA 4</td>";
    print "</tr>";
    $x=0; 
    while (!feof ($fd))
    {     
    $riga=fgets($fd, 4096);     
    if($riga!="")     
    {    
    $arr=split(";", $riga);   
      
    $arr[3]= $arr[3] * 100; 
    
    
    print "<tr>";          
    print "<td>".$arr[0]."</td>";          
    print "<td>".$arr[1]."</td>";          
    print "<td>".$arr[2]."</td>";          
    print "<td>".$arr[3]."</td>";                     
    print "</tr>";         
    $x++;  
    }  
    fputcsv($destinazione, $arr);
    }
    print "";
    fclose($fd);
    flcose($destinazione);
    ?>

  5. #5
    Come ben saprai la parte della funzione che scrive il tutto nel file è
    codice:
    fputcsv($destinazione, $arr);
    Ma non hai mai salvato il nome delle colonne nell'array $arr.
    Semplicemente assegna le colonne nella prima iterazione dell'array e sarà in cima al file.

    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  6. #6
    ci sto provando da giorni.non capisco dove sbaglio ..perchè se davo a inserire nell' array me lo da come una nuova colonna e non come la prima riga...
    dato che faccio varie operazioni e modifiche nelle colonne mi ricreo l'array prima e ad esempio...
    codice:
      $salva = array ($arr[1],$arr[3],$arr[5],$arr[6]);
      fputcsv($destinazione, $salva, $delimiter = ';');
    ma nei singoli $arr[1]..etc... no riesco a mettere il valore nella prima riga....
    come posso fare?

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.