Anzeige

 Problem mit fputcsv()

#1
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:
0,Max,Mustermann,123
1,Maria,Maier,321
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:
0,Max,Mustermann,123
1,,Maier,
2,Christian,Mueller,213
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
 
#3
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:
$csv[1][0] = "1";
$csv[1][1] = "Maria";
$csv[1][2] = "Maier";
$csv[1][3] = "321";

$csv[2][0] = "2";
$csv[2][1] = "Christian";
$csv[2][2] = "Mueller";
$csv[2][3] = "213";
print_r($csv);
$csv[1][1] = "";
$csv[1][3] = "";
setCsv($file, $csv);
print_r($csv);
function setCsv($file, $array)
{
    $handle = fopen($file, "r+");
    foreach ($array as $values){
        fputcsv($handle, $values);
    }
    fclose($handle);
}
Mfg Jack
 
Anzeige

Neue Beiträge

Anzeige