fputcsv - Функция выдает ошибку.

Я пытаюсь экспортировать свои данные в CSV-файл и позволить пользователю загрузить его. Я использую функцию fputcsv(), но в файле данные записываются в одну ячейку, а не в соседние ячейки. Я не знаю, в чем проблема. Помогите мне, пожалуйста. вот мой код

session_start();
header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename=report_'.time().'.csv;');
$data = $_SESSION['data'];
$file = fopen('php://output','w');
foreach($data as $i=>$value)
{
    fputcsv($file, $value,";");
}
fclose($file);

а вот так выглядит файл..

и вот как выглядит файл..


person Vignesh    schedule 29.04.2014    source источник
comment
Попробуйте это fputcsv($fp, array_values($list), ';', ' ');   -  person dkakoti    schedule 29.04.2014


Ответы (2)


попробуй как

 $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);

или попробовать может быть по вашим данным

foreach($data as $i=>$value)
{
    fputcsv($file, $value);
}
person Rakesh Sharma    schedule 29.04.2014
comment
изменить по вашим данным - person Rakesh Sharma; 29.04.2014
comment
большое спасибо, это работает. Можете ли вы объяснить, что не так в моем коде, если у вас есть время? - person Vignesh; 29.04.2014
comment
я думаю, что разделитель (;), который вы используете, неверен для более php.net/manual/en /function.fputcsv.php примите каждый ответ, если вы считаете его правильным - person Rakesh Sharma; 29.04.2014

Используйте , вместо ; для delimiter

Замените fputcsv($file, $value,";"); на fputcsv($file, $value, ","); и попробуйте

Пример:

header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename=report_'.time().'.csv;');
$data = array(array('one' => 1, 'two' => 2));
$file = fopen('php://output','w');
foreach($data as $i => $value)
{
    //fputcsv($file, $value, ";");
    fputcsv($file, $value, ",");
}
fclose($file);
person Manoj Yadav    schedule 29.04.2014