Я новичок в php, и у меня есть вопрос о вас. На данный момент я создаю один PHP скрипт, где я хочу использовать это:Поток памяти ввода-вывода PHP создает пустую строку в начале документа
$file = fopen('php://memory','w');
Затем я использую fputcsv, где я добавить несколько массивов для заполнения в этот документ. В заключительной части, я сказал, что я хочу сделать downloadeble ссылку
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="service.csv"');
Мой метод выглядеть следующим образом:
public function exportToCsv($Id){
$file = fopen('php://memory','w');
$someDetails = $this->some_model->getSomeDetail($Id);
$details = array(
array("Subject", "Start Date", "Start Time", "End Date", "End Time", "Where"),
array("test subject","test date","test time","test end date","etc..."));
foreach ($details as $detail) {
fputcsv($file, $detail);
}
fseek($file,0);
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="file.csv"');
fpassthru($file);}
Когда мой браузер загрузить этот файл, и когда я открываю его, все отлично, но в начале файла есть одна пустая строка, и я не понимаю, почему это произошло, и как я могу удалить эту строку.
Спасибо за описание.
Marek
У вас есть пробел/пустая строка до или после тега php? () – SamyQc
Нет, я использовал структуру CodeIgniter, и этот код записывался в контроллер. Пустая строка/пробел не найдена. Когда я открываю созданный документ, первая строка пуста и другие строки заполняются. И я забыл упоминать .. все это происходит только тогда, когда я использую путь «php: // memory» или output, ... Когда я пишу путь, как «C:/path/to/folder», все в порядке, no пустая строка создается ... только «php: // memory» создает пустую строку в начале – Marek
Попробуйте добавить ob_end_clean(); непосредственно перед вашим fpassthru ($ file); – SamyQc