Две пустые строки в начале файла загрузки

Я пытаюсь создать файл CSV на лету, а затем заставить браузер загрузить его.
Создание файла просто и не содержит ни одной пустой строки, я проверил это. Другая проблема может быть <?php теги, но у меня нет пустых строк после него, и у меня должен быть закрывающий тег, потому что у меня есть HTML-код в моем php файл. Это мое php код, который делает все это:

    if (count($wiersze) > 0  && isset($file_name_whole) && isset($atrybuty)) {
$fh = @fopen($file_name_whole, $atrybuty);
foreach ($wiersze as $row){
if (count($row)>1){
$new_row=array();
foreach ($row as $k=>$v){
$new_row[$k] = '"'.$v.'"';
$new_row_str=implode(',',$new_row)."\n";
}
}
elseif (count($row)==1 && $row[0][0]=='#'){
$new_row_str=$row[0]."\n";
}
else
continue;

fputs($fh, $new_row_str);
}
fclose($fh);
if (file_exists($file_name_whole)) {
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="'.basename($file_name_whole).'"');
header("Content-Length: " . filesize($file_name_whole));
readfile($file_name_whole);
exit;
}

У вас есть какой-нибудь совет, что я делаю не так?

0

Решение

Что помогло мне была эта статья
Ссылка на стек-обмен

Возможно, эти строки «зависают» в выходном буфере, который был запущен некоторое время назад. Таким образом, вы можете установить заголовки без старой ошибки «заголовки уже отправлены», но этот контент все равно будет отправлен в браузер при очистке буфера.

Код:

ob_clean();
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]