如何在Php中创建CSV下载

时间:2014-11-04 15:08:21

标签: php xml csv wordpress-plugin fputcsv

我需要一些帮助。我正在使用API​​从CRM中提取数据,我循环遍历每个变量,例如。 这是在Wordpress内部。隔离后的答案在隔离时确实可以正常工作。

for ($x = 0; $x<=$total_leads; $x++){
   $first_name = $xml->users->user[$x]->firstname;
   $last_name = $xml->users->user[$x]->lastname;
   $company_name = $xml->users->user[$x]->company;
}

我需要做的是将数据推送到.csv文件并下载。我在这里尝试过各种各样的例子,没有运气。似乎数据必须存储在数组中。有什么建议吗?

更新

`header('Content-Type: text/plain');
 header('Content-Disposition: attachment; filename=sample.csv');

for ($x = 0; $x<=$total_leads; $x++){
 $first_name = $xml->users->user[$x]->firstname;
 $last_name = $xml->users->user[$x]->lastname;
 $company_name = $xml->users->user[$x]->company;
 $gmg_data .= $first_name . ',' . $last_name . ',' . $company_name . '\n';

$fp = fopen('php://output', 'w');
foreach($gmg_array as $row) {
fputcsv($fp, $row);
}    
}`

仍然没有创建文件

更新:2014年4月11日 - 上午11:05

删除了最后几行代码并添加了

`$gmg_data[] = array($first_name, $last_name, $company_name);
$fp = fopen('php://output', 'w');
foreach($gmg_array as $row) {
fputcsv($fp, $row);
}`

我仍然没有获得.csv下载。我感谢您的所有帮助,但这是如何被标记为主题?

1 个答案:

答案 0 :(得分:1)

<?php

// Represents the array you want to convert to a CSV
$data = array(
    array('a', 'b', 'c'),
    array('1', '2', '3'),
    array('4', '5', '6')
);

header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename=sample.csv');

$fp = fopen('php://output', 'w');

// This loops through the array, however if you are pulling the data row by 
// row from somewhere else then only the variable $row as an array is relevant
// in this example.
foreach($data as $row) {
    fputcsv($fp, $row);
}