Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] fputcsv Doppelte Hochkommas

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Futuretop
    hat ein Thema erstellt [Erledigt] fputcsv Doppelte Hochkommas.

    [Erledigt] fputcsv Doppelte Hochkommas

    Hallo!

    Ich möchte gerne eine CSV-Datei erstellen, in der die Zeilen folgendes Format haben:
    "http://xyz.biz","111","eins","eins,zwei,drei"
    Dies gelingt mir nur zum Teil. Woran liegt das?


    Code:
    <?php
    
    $list = array ('http://xyz.biz', '111', 'eins zwei', 'eins,zwei,drei');
    
    $fp = fopen('test.csv', 'w');
    
    
        fputcsv($fp, $list,',','"');
    
    
    fclose($fp);
    ?>
    Ergebnis:
    http://xyz.biz,111,"eins zwei","eins,zwei,drei"


    Code:
    <?php
    
    $list = array ('http://xyz.biz', '111', 'eins', 'eins,zwei,drei');
    
    $fp = fopen('test.csv', 'w');
    
    
        fputcsv($fp, $list,',','"');
    
    
    fclose($fp);
    ?>
    Ergebnis:
    http://xyz.biz,111,eins,"eins,zwei,drei"


    Futuretop

  • Arne Drews
    antwortet
    Eine CSV kennzeichnet sich doch nicht dadurch aus, mit welcher Funktion der Inhalt geschrieben wurde, sondern durch den formatierten Inhalt selbst.
    Du bezeichnest Dich selbst als Fortgeschrittener, da dürfte man solche Dinge schon wissen...

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Ja schau halt nach http://www.ietf.org/rfc/rfc4180.txt

    Einen Kommentar schreiben:


  • Futuretop
    antwortet
    Hallo!


    Danke für die Antworten!

    Code:
    <?php
    
    $datei="test.csv";
    
    $list = '"http://xyz.biz","111","eins","eins,zwei,drei"';
    
    $fp = fopen($datei, 'a');
    
    fwrite($fp,$list);
    
    fclose($fp);
    
    echo file_get_contents( 'test.csv' );
    ?>
    Code:
    "http://xyz.biz","111","eins","eins,zwei,drei"
    Das Ergebnis wäre vom Aussehen her richtig. Ich frage mich aber, ob es immer noch eine richtige CSV-Datei ist.


    Futuretop

    Einen Kommentar schreiben:


  • erc
    antwortet
    Zitat von Futuretop Beitrag anzeigen
    Dies gelingt mir nur zum Teil. Woran liegt das?
    Weil es keine pflicht ist die Felder in Quotes zu setzen solange kein Delimiter, Zeilenumbruch oder Quote vorkommt. Wenn du unbedingt Quotes haben willst musst du auf fputcsv verzichten und es per Hand machen.

    Einen Kommentar schreiben:


  • Arne Drews
    antwortet
    Der enclosure-Parameter besagt nicht, daß die Items damit eingegrenzt werden, sondern, daß es entsprechend bei Vorkommen "maskiert" wird:
    PHP-Code:
    $aItems = array( 'foo''bar' );

    $hFile fopen'test.csv''w' );
    fputcsv$hFile$aItems );
    fclose$hFile );

    echo 
    file_get_contents'test.csv' ); 
    Code:
    foo,bar
    mit
    PHP-Code:
    $aItems = array( '"foo"''"bar"' ); 
    hingegen:
    Code:
    """foo""","""bar"""
    Bei Deiner Theorie hätte hier aber das rauskommen müssen:
    Code:
    ""foo"",""bar""
    Du mußt die DoubleQuotes schon selbst reinbasteln, wenn Du die benötigst.

    Einen Kommentar schreiben:

Lädt...
X