1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Problem mit fputcsv()

Dieses Thema im Forum "PHP" wurde erstellt von dUser, 16. November 2016.

  1. dUser

    dUser Mitglied

    Guten Tag,

    wie man schon im Titel erkennen kann, bezieht sich mein Problem auf die PHP-Funktion fputcsv().

    Mein Vorhaben:
    -Ich möchte einzelne Spalten im Array durch etwas anderes ersetzen (hier durch ein "").
    Jedoch habe ich dabei das Problem, dass immer was vom alten Array überbleibt.

    CSV-Datei vor dem ersetzen:
    Code (Text):
    1. 0,Max,Mustermann,123
    2. 1,Maria,Maier,321
    3. 2,Christian,Mueller,213
    (
    [0] => Array
    (
    [0] => 0
    [1] => Max
    [2] => Mustermann
    [3] => 123
    )

    [1] => Array
    (
    [0] => 1
    [1] => Maria
    [2] => Maier
    [3] => 321
    )

    [2] => Array
    (
    [0] => 2
    [1] => Christian
    [2] => Mueller
    [3] => 213
    )

    )
    [1][1] und [1][3] sollen ersetzt werden
    [0] => Array
    (
    [0] => 0
    [1] => Max
    [2] => Mustermann
    [3] => 123
    )

    [1] => Array
    (
    [0] => 1
    [1] =>
    [2] => Maier
    [3] =>
    )

    [2] => Array
    (
    [0] => 2
    [1] => Christian
    [2] => Mueller
    [3] => 213
    )

    )
    CSV-Datei nach dem reinschreiben:
    Code (Text):
    1. 0,Max,Mustermann,123
    2. 1,,Maier,
    3. 2,Christian,Mueller,213
    4. eller,213
    Es funktioniert richtig (Zeile 2)
    =>Die Spalten wurden auf "" gesetzt.
    Jedoch wurden von der letzten Zeile ein paar Zeichen in die nächste kopiert.
    Hierbei stelle ich mir die frage wieso dies passiert.
    Wenn ich das Ersetzungszeichen ("") durch "PLATZHALTER" ersetze, tritt diese Verschiebung jedoch nicht auf.

    Vielleicht weiß einer von euch, wie man das Problem lösen kann.


    Mfg

    -Jack001
     
  2. merzi86

    merzi86 Erfahrenes Mitglied

    Hättest du vielleicht auch ein paar Zeilen Quellcode für uns?
     
  3. dUser

    dUser Mitglied

    Hallo,

    ja ich habe ein paar Zeilen Code, jedoch wäre der Code zum lokalisieren der richtigen Zeile etwas lang ...

    Ich habe mir jedoch eine alternative überlegt, welche aufs gleiche Ergebnis hinausläuft.
    Letztendlich bezieht es sich ja nur aufs eintragen ...

    PHP:
    1. $csv[1][0] = "1";
    2. $csv[1][1] = "Maria";
    3. $csv[1][2] = "Maier";
    4. $csv[1][3] = "321";
    5.  
    6. $csv[2][0] = "2";
    7. $csv[2][1] = "Christian";
    8. $csv[2][2] = "Mueller";
    9. $csv[2][3] = "213";
    10. print_r($csv);
    11. $csv[1][1] = "";
    12. $csv[1][3] = "";
    13. setCsv($file, $csv);
    14. print_r($csv);
    15. function setCsv($file, $array)
    16. {
    17.     $handle = fopen($file, "r+");
    18.     foreach ($array as $values){
    19.         fputcsv($handle, $values);
    20.     }
    21.     fclose($handle);
    22. }
    Mfg Jack
     
Die Seite wird geladen...