Ich versuche, eine dynamisch generierte CSV-Datei zu dienen. Aus irgendeinem Grund, wenn ich die Datei bekomme, gibt es 18 leere Zeilen vor den Daten. Ich habe keinen Platz zwischen den Headern, die ich definiere, und den csv-Daten, die ich sende. Wenn ich die Daten in eine Datei auf dem Server schreibe, erhält sie diese leeren Zeilen nicht. Wenn ich jedoch die Datei schreibe und versuche, sie dem Benutzer zu liefern, kommen die leeren Zeilen zurück. Also ich frage mich, ob vielleicht habe ich die Header vermasselt, oder ob vielleicht ein anderes Thema gibt es mir nicht denken:Download Header irgendwie 18 Zeilen Whitespace einfügen
function generate_csv($source_type, $include_unpublished = FALSE) {
// retrieve data from DB
....
// start up headers
$csv_name = "$source_type-$data_set-csv_" . date('Y-m-d') . '.csv';
header('Content-Type: text/x-comma-separated-values');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false); // required for certain browser
header('Content-Disposition: attachment; filename="' . $csv_name . '"');
// send csv data
print $csv_data;
} //end function
Haftungsausschluss: Ich habe diese Frage bei https://drupal.stackexchange.com/questions/27649/extra-empty-rows-when-serving-csv-file, aber es dosn't scheinen drupal-spezifisch zu sein und es gab nicht viele Ideen, die da drüben kamen.
Sie Ausgabepufferung verwenden Sie? Wenn dies der Fall ist, können die leeren Zeilen auch irgendwo _before_ sein, wo Sie die Header setzen. – KingCrunch
Guter Punkt. Leider mache ich keine ob. – doub1ejack
Sie haben erwähnt, dass Sie Drupal verwenden. Sie sind also sicher, dass keine Ausgabepufferung aktiv ist? – KingCrunch