Ich versuche, große CSV-Dateien zu spalten.Right jetzt konnte ich nur csv-Dateien w/50k Spalten splitten.Wenn ich versuche, eine 100k Splitting es funktioniert nicht.Splitting große CSV-Dateien
Ich kann nicht herausfinden, was falsch ist.
Hier ist mein Code für den Splitter ich für 100k verwenden:
$inputFile = 'uploads/uploaded.csv';
$outputFile = 'uploads/output';
$rows = array_map('str_getcsv', file($inputFile));
$header = array_shift($rows);
$splitSize = 50000;
$in = fopen($inputFile, 'r');
fgetcsv($in, 1000, ",");
//array for file name
$stored_names = array();
$rowCount = 0;
$fileCount = 1;
//split csv
while (!feof($in)) {
if (($rowCount % $splitSize) == 0) {
if ($rowCount > 0) {
fclose($out);
}
$super_file_name = $outputFile . $fileCount++;
array_push($stored_names,$super_file_name.'.csv');
$out = fopen($super_file_name. '.csv', 'w');
//insert header
fputcsv($out,$header);
// array_push($stored_names,$out);
}
$data = fgetcsv($in);
if ($data)
fputcsv($out,$data);
$rowCount++;
}
fclose($out);
Haben Sie Fehler-Logs? Was genau funktioniert nicht? was geschieht? –
'file()' liest die gesamte Datei in den Speicher. Sie treffen wahrscheinlich ein Speicherlimit. –
, wenn ich fertig bin, 100k csv-Dateien hochladen. Es hört einfach auf zu laden. –