записывать в файл csv в php

Я должен создать и записать в файл 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);