• User Attivo

    Ciao
    io proverei così:

    
    
    <?[php](http://www.giorgiotave.it/wikigt/os/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);      
        print "<tr>";      
        print "<td>".$arr[0]."</td>";      
        print "<td>".$arr[1]."</td>";      
        print "<td>".$arr[2]."</td>";      
        print "<td>".$arr[3]."</td>";      
        print "<td>".$arr[4]."</td>";           
        print "</tr>";     
        $x++;
      }
      fputcsv($destinazione, $arr);
    }
    print "";
    fclose($fd);
    flcose($destinazione);
    ?>
    
    

  • User Attivo

    Grazie mille
    finalmente ho fatto un passo in avanti e riesco ora a sbloccarmi
    ti volevo chiedere come faccio ad inserire un valore modificato nell'array?
    a video lo vedo ma non me la salva nel file

    ad esempio la 5 colonna la voglio moltiplicare per 100
    e faccio questa cosa ma nonostante la vedo a video non la vedo nel file salvato.
    il valore deve essere poi inserito nell'array vero?
    come faccio?

    grazieeee

    [PHP]
    <?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);
    $a= $arr[4] * 100;
    print "<tr>";
    print "<td>".$arr[0]."</td>";
    print "<td>".$arr[1]."</td>";
    print "<td>".$arr[2]."</td>";
    print "<td>".$arr[3]."</td>";
    print "<td>".$a."</td>";
    print "</tr>";
    $x++;
    }
    fputcsv($destinazione, $arr);
    }
    print "";
    fclose($fd);
    flcose($destinazione);
    ?>
    [/PHP]


  • User Attivo

    esatto
    potresti ricostruire un nuovo array con i valori modificati e salvare quello nel file.


  • User Attivo

    ce l'ho fatta
    ho semplicemente variato:
    $arr[3]= $arr[3] * 100;

    ti chiedo un ultima cosa.
    il file di partenza file.csv ha come separatore il ; ma il file salvato destinazione.csv ha come separatore la ,
    come posso dare anche alla destinazione il ; come separatore?

    <?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++;  
    }  
    fputcsv($destinazione, $arr);
    }
    print "";
    fclose($fd);
    flcose($destinazione);
    ?>
    

  • User Attivo

    aggiornamento
    ce l'ho fatta a salvare con il delimitatore ;
    semplicemente inserendolo nel fputcsv
    cosi...
    fputcsv($destinazione, $arr, $delimiter = ';');

    grazie ancora di cuore!!


  • User Attivo

    Ragazzi scusatemi se apro nuovamente la discussione.
    Lo script php funziona a meraviglia ma mi occorre una piccolissima modifica
    Nel file cvs salvato mi occorre che sia presente una nuova intestazione di colonne.
    Come posso crearla?

    Grazie ancora


  • User Attivo

    in che senso una nuova intestazione? devi sostituire la precedente?


  • User Attivo

    In pratica mi occorre che il nuovo file cvs generato abbia un titolo di colonne nuovo anche perchè in alcuni casi le colonne create sono nuove e mi occorre scrivere per tutte le nuove colonne un titolo per facilitarne poi l'uso.


  • User Attivo

    Se devi solo cambiare l'intestazione delle colonne potresti aggiungere la nuova intestazione prima del primo giro di lettura del file. Inizi con l'intestazione e successivamente accodi il file letto come stai già facendo, può andare o sono sulla strada sbagliata?


  • User Attivo

    riesco solo a stampare i titoli di colonne a video ma non a salvarlo
    ho modificato cosi il file
    e riesco solo a vederle nel file a video ma nel csv di destinazione che si salva non appaiono..

    <?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);
    ?>