Я должен создать и записать в файл csv. Теперь я попробовал следующий код:
header('Content-type: application/octet-stream'); header('Content-disposition: attachment; filename="data.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);
Он также дает мне исходный код файла в файле csv? Как я могу это решить?
Оберните его в теги <?php
и ?>
.
header () должен появиться после массива и fopen
попробуй это:
$data = array ( 'aaa,bbb,ccc,dddd', '123,456,789', '"aaa","bbb"'); $fp = fopen('php://output', 'w+'); header('Content-type: application/octet-stream'); header('Content-disposition: attachment; filename="data.csv"'); foreach($data as $line){ $val = explode(",",$line); fputcsv($fp, $val); } fclose($fp);
Измените первый заголовок на header('Content-type: text/csv');
Попробуй это:
header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=data.csv'); $data = array ( 'aaa,bbb,ccc,dddd', '123,456,789', '"aaa","bbb"'); $fp = fopen('php://output','w'); foreach ($data as $line) { fputcsv($fp, array_map('utf8_decode',array_values($line)), ',', '"'); } fclose($fp);