2017-01-25 2 views
0

Я не могу показать только конкретную информацию в виде csv или любого файла. Ниже, например, выводить HTML со страницы, а не данные, которые я пытаюсь отправить на Applicants.csv:Content-type: text/csv output html в файл csv

(массив $ a_Lines уже был заполнен):

header('Content-type: text/csv'); 
header('Content-Disposition: attachment; filename="Applicants.csv"'); 
header('Pragma: no-cache'); 
header('Expires: 0'); 

$file = fopen('php://output', 'w'); 

foreach ($a_Lines as $row) { 
    fputcsv($file, $row); 
} 
fclose($file); 

ответ

0

Убедитесь, что в выражении

fputcsv($file, $row); 

$ row всегда массив. Если вы хотите создать файл $ a_Lines csv, вам не нужен цикл foreach (конечно, я полагаю, что $ a_Lines - это массив). В случае, если вы хотите получить выбранные данные из массива $ a_Lines, затем выполните через $ a_Lines, создайте новый массив или измените существующий, а после цикла добавьте подготовленный массив в функцию fputcsv.

+0

Спасибо, Дин. Да, я подтвердил с помощью var_dump(), что $ row - это массив. Ранее в тот же день это была строка, которая вызвала ошибку, связанную с вашими комментариями. Но $ row - это массив для каждой итерации. –

+0

Я думаю, может быть, проблема в том, что это должна быть отдельная html-страница. В настоящее время это часть состояния большей страницы. Но, возможно, мне нужно назначить кнопку CSV (на главной странице) URL-адресу другой страницы. Правильно ли это звучит? –

+0

У вас может быть только один вывод на странице. Поэтому, если у вас есть что-то раньше в качестве вывода, тогда вы должны это изменить. В противном случае это не проблема. Вы можете сделать еще одну вещь - попробуйте удалить двойные кавычки вокруг имени файла. –

Смежные вопросы