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

    Formattazione CSV utilizzando fputcsv

    Ciao,
    come da manuale http://php.net/manual/en/function.fputcsv.php creo il file csv con la funzione "fputcsv", il mio problema è che i campi del csv mi vengono formattati con triplo doppio apice " di apertura/chiusura valore, come nell'esempio di php.net , esempio: """aaa""","""bbb""",... mentre invece io ne ho bisogno con un apice di apertura e chiusura, del tipo: "aaa","bbb",...
    ho fatto diversi tentativi ma non ci sono riuscito... possibile?
    Ultima modifica di lapiadina; 08-04-2015 a 17:24

  2. #2
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Codice PHP:
    <?php

    $list 
    = array (
        array(
    'aaa''bbb''ccc''dddd'),
        array(
    '123''456''789'),
        array(
    '"aaa"''"bbb"')
    );

    $fp fopen('file.csv''w');

    foreach (
    $list as $fields) {
        
    fputcsv($fp$fields);
    }

    fclose($fp);
    ?>

    aaa,bbb,ccc,dddd
    123,456,789
    """aaa""","""bbb"""
    Come da esempio il triplo apice è presente se nel dato sono presenti i doppi apici... sicuro di non avere il carattere all'interno del dato?
    Che mestiere difficile.....essere da soli ancora di più

  3. #3
    Ciao Fractals,
    grazie per il tuo supporto.
    Il problema è che dovrei riuscire a creare un csv con tutti i valori contenuti dentro singolo doppio apice, esempio "aaa","bbb","cc cc"

    Se creo l'array così:
    array('aaa', 'bbb', 'cc cc')
    poi ottengo: aaa,bbb,"cc cc"
    notare che il doppio apice c'è ma solo nel terzo valore con all'interno uno spazio...

    Se creo invece l'array così:
    array('"aaa"', '"bbb"', '"cc cc"')
    poi ottengo: """aaa""","""bbb""","""cc cc"""
    tutti i valori sono contentui da triplo apice....

    come è possibile?

  4. #4
    al momento ho risolto utilizzando fwrite anzichè fputcsv:

    fwrite($fp,implode(",",$valore).PHP_EOL);

  5. #5
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    eh c'è poco da fare, se anche da documentazione di dice che se il valore in array è "sss" e l'output è """sss""", è proprio l'oggetto che funziona in questo modo.
    Una strada sarebbe scrivere materialmente il file .csv, magari con questo oggetto,
    http://php.net/manual/en/function.file-put-contents.php
    In modo da scrivere esattamente quello che ti serve.
    Che mestiere difficile.....essere da soli ancora di più

  6. #6
    Quote Originariamente inviata da Fractals87 Visualizza il messaggio
    eh c'è poco da fare, se anche da documentazione di dice che se il valore in array è "sss" e l'output è """sss""", è proprio l'oggetto che funziona in questo modo.
    Una strada sarebbe scrivere materialmente il file .csv, magari con questo oggetto,
    http://php.net/manual/en/function.file-put-contents.php
    In modo da scrivere esattamente quello che ti serve.
    infatti.. son arrivato anch'io alla stessa considerazione, è proprio l'oggetto fputcsv che funziona così..
    Nel link che mi hai postato dice: "This function is identical to calling fopen(), fwrite() and fclose() successively to write data to a file." quindi il mio fwrite direi che ci sta
    Grazie per l'aiuto
    Ciao

  7. #7
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Figurati anche se alla fine sei arrivato alla conclusione ancora prima che rispondessi.
    Che mestiere difficile.....essere da soli ancora di più

  8. #8


    per codificare il file CSV in UTF-8 hai qualche idea?
    Ho provato con diverse soluzioni ma senza trovare un rimedio.
    Devo importare il file in Magento e lo vuole UTF-8, se lo apro con notepad e lo salvo come UTF-8 poi me lo importa correttamente.

  9. #9
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    cerca utf8 http://php.net/manual/fr/function.fwrite.php
    all'interno della metodo che stai usando, mi pare di aver letto anche esempio con e senza BOM
    Che mestiere difficile.....essere da soli ancora di più

  10. #10
    grazie, ho risolto passando i valori con:
    Codice PHP:
    utf8_encode 

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.