没有';是否在laravel(php)中下载.csv?
我是拉拉维尔的新手,当我点击我的代码时,它会像浏览器一样给出响应 输出: ID,“事件名称” 1,“测试事件” 3,“测试1” 请查看下面的代码并指导我=>没有';是否在laravel(php)中下载.csv?,php,laravel-5,export-to-csv,Php,Laravel 5,Export To Csv,我是拉拉维尔的新手,当我点击我的代码时,它会像浏览器一样给出响应 输出: ID,“事件名称” 1,“测试事件” 3,“测试1” 请查看下面的代码并指导我=> $events = Events::all()->toArray(); $event_set = array(); //echo '<pre>'; print_r($events); die; $i =0; foreach ($events as $even
$events = Events::all()->toArray();
$event_set = array();
//echo '<pre>'; print_r($events); die;
$i =0;
foreach ($events as $event)
{
$record['id'] = $event['id'];
$record['event_name'] = $event['event_name'];
$event_set[$i] = $record;
$i++;
}
//echo '<pre>'; print_r($event_set); die('test');
$filename = "events.csv";
$header = ['ID', 'Event Name'];
$export_data = $this->getDataCsv($event_set, $header);
return response($export_data)
->header('Content-Type','application/csv')
->header('Content-Disposition', 'attachment; filename="'.$filename.'"')
->header('Pragma','no-cache')
->header('Expires','0');
function getDataCsv($data, $headers, $delimiter = ',', $enclosure = '"') {
$filename = "php://temp";
$fp = fopen($filename, 'w');
fputcsv($fp, $headers, $delimiter, $enclosure);
if(count($data)>0){
foreach ($data as $key => $value) {
fputcsv($fp, $value, $delimiter, $enclosure);
}
}
rewind($fp);
$csvdata = fread($fp, 1048576);
fclose($fp);
return rtrim($csvdata, "\n");
}
$events=events::all()->toArray();
$event_set=array();
//回声';打印(事件);死亡
$data = [
['ID', 'Event Name', 'test event'], // this is going to be header for the csv file
[1, 'xyz', 'aadfas'],
[2, 'abc', 'jljljl'],
];
public function arrayToCSVDonwload($data, $fileName = null, $delimiter = ",")
{
$fileName = $fileName ? $fileName . '.csv' : microtime(true) . ".csv";
header("Content-Type: application/csv");
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=$fileName");
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
$output = fopen("php://output", "w");
foreach ($data as $row) {
fputcsv($output, $row, $delimiter);
}
fclose($output);
exit;
}
$i=0;
foreach($events作为$event)
{
$record['id']=$event['id'];
$record['event_name']=$event['event_name'];
$event_set[$i]=$record;
$i++;
}
//回声';打印(事件集);模具(“测试”);
$data = [
['ID', 'Event Name', 'test event'], // this is going to be header for the csv file
[1, 'xyz', 'aadfas'],
[2, 'abc', 'jljljl'],
];
public function arrayToCSVDonwload($data, $fileName = null, $delimiter = ",")
{
$fileName = $fileName ? $fileName . '.csv' : microtime(true) . ".csv";
header("Content-Type: application/csv");
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=$fileName");
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
$output = fopen("php://output", "w");
foreach ($data as $row) {
fputcsv($output, $row, $delimiter);
}
fclose($output);
exit;
}
$filename=“events.csv”;
$header=['ID','Event Name'];
$export\u data=$this->getDataCsv($event\u set,$header);
返回响应($export\u数据)
->标题('Content-Type'、'application/csv')
->标题('Content-Disposition','attachment;filename=“.$filename.”)
->标头('Pragma','no-cache')
->标题('Expires','0');
函数getDataCsv($data,$headers,$delimiter=',',$enclosure='”){
$filename=”php://temp";
$fp=fopen($filename,'w');
fputcsv($fp,$headers,$delimiter,$enclosure);
如果(计数($data)>0){
foreach($key=>$value形式的数据){
fputcsv($fp,$value,$delimiter,$enclosure);
}
}
倒带($fp);
$csvdata=fread($fp,1048576);
fclose($fp);
返回rtrim($csvdata,“\n”);
}
请告诉我,我做错了什么?使用此功能生成和下载CSV文件 将数据传递为: 并调用这个函数