Я хочу создать файл csv, но когда я запускаю код, он возвращает страницу банка и файл csv. Я использую PHP 5. Я использую следующий код:
<?php $data = array ('aaa,bbb,ccc,dddd', '123,456,789', '"aaa","bbb"'); $fp = fopen('data.csv', 'w'); foreach($data as $line){ $val = explode(",",$line); fputcsv($fp, $val); } fclose($fp); ?>
Спасибо!
Его пустое, потому что вы пишете file
. вам следует написать output
с использованием php://output
вместо этого, а также отправить информацию заголовка, чтобы указать его csv.
пример
header('Content-Type: application/excel'); header('Content-Disposition: attachment; filename="sample.csv"'); $data = array( 'aaa,bbb,ccc,dddd', '123,456,789', '"aaa","bbb"' ); $fp = fopen('php://output', 'w'); foreach ( $data as $line ) { $val = explode(",", $line); fputcsv($fp, $val); } fclose($fp);
@ Ответ Бабы велик. Но зачем использовать fputscv
поскольку fputscv
принимает массив в качестве параметра?
Например, если у вас есть три столбца, четыре строки документа, вот более прямая версия:
header('Content-Type: application/excel'); header('Content-Disposition: attachment; filename="sample.csv"'); $user_CSV[0] = array('first_name', 'last_name', 'age'); // very simple to increment with i++ if looping through a database result $user_CSV[1] = array('Quentin', 'Del Viento', 34); $user_CSV[2] = array('Antoine', 'Del Torro', 55); $user_CSV[3] = array('Arthur', 'Vincente', 15); $fp = fopen('php://output', 'w'); foreach ($user_CSV as $line) { // though CSV stands for "comma separated value" // in many countries (including France) separator is ";" fputcsv($fp, $line, ','); } fclose($fp);
я надеюсь, что этот пример будет полезен для вас
$data= "Sr. No.,Vendor Name,Cargo Type,Amount,Delivery Address,Pickup Time,Delivery Time\n"; $i = 1; if(!empty($detail)) { foreach ($detail as $list) { $data .= $i.","; $data .= any data $data .= any data $data .= any data $data .= any data $data .= any data $data .= any data $data .="\n"; $i++; } } header("Content-Type: application/csv"); $csv_filename = 'anyfilename.xlsx'; header("Content-Disposition:attachment;filename=".$csv_filename); $fd = fopen ($csv_filename, "w"); fputs($fd,$data); fclose($fd); echo $data; die();