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

  • [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


  • #2
    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.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      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.

      Kommentar


      • #4
        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

        Kommentar


        • #5
          Ja schau halt nach http://www.ietf.org/rfc/rfc4180.txt
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            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...
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar

            Lädt...
            X