在php中导出为csv格式

时间:2014-03-03 13:05:00

标签: php

while($row = mysql_fetch_array($result)) {


                echo "<tr>";
                echo '<td>' . $row['fname'] . '</td>';
                echo '<td>' . $row['lname'] . '</td>';

                echo '<td>' .(( $row['gender']=='m' )?'male':'female'). '</td>';


                echo '<td>' . $row['dob'] . '</td>';
                echo '<td>' . $row['mobnum'] . '</td>';
               // echo '<td>' . $row['mobnum'] . '</td>';
                echo '<td>' . (($row['selqual']=='s')?'school':'college'). '</td>';

                echo '<td>' . $row['address'] . '</td>';
                echo '<td>' . $row['email_id'] . '</td>';

                //get course = calling function
               echo '<td>' . getcourse($row['course_name']) . '</td>';
               echo '<td>' . $row['date_time'] . '</td>';

             // echo '<td>'. $course_name=(explode(',',$_row['course_name'])) . '</td>';



                echo "</tr>"; 

   }

        echo "</table>";

        }

嗨,我对php很新鲜。我正在填充并在db中的各个表的while循环中显示这些结果。我想将这些数据导出为csv格式。有什么办法可以将它们存储在数组中并使用数组进行导出??如果是,请指导我。

3 个答案:

答案 0 :(得分:0)

导出到csv非常常见PHP甚至还提供本机功能。请看fputcsv

答案 1 :(得分:0)

添加标题在页面顶部。

 header("Content-type: text/csv");
 header("Content-Disposition: attachment; filename=file.csv");
 header("Pragma: no-cache");
 header("Expires: 0");

希望这有帮助。 感谢

答案 2 :(得分:0)

使用PHP,将数据写入CSV文件非常容易。你需要做的事情是:

  • Read the red warning boxes on the site
  • 不使用mysql_fetch_array获取(不是在讨论扩展的弃用),这会将结果提取两次,一次数字索引,一次作为一个关联数组。仅作为assoc数组获取:mysql_fetch_assoc
  • 打开一个文件:fopen('filename.csv', 'w');应该没问题
  • 使用fputcsv
  • 写入文件

反正:

$csv = fopen('out.csv', 'w');
if (!$csv)
{
    exit('Failed to open csv');
}
while($row = mysql_fetch_assoc($result))
{
    fputcsv($csv, $row);//writes line to CSV
    //process $row further, if you want
}
fclose($csv);//<-- don't forget to close the file

如果出于某种原因,在将相同数据写入文件之前,您希望拥有一个包含 all 数据的数组:

$data = array();//<-- big array
while($row = mysql_fetch_assoc($result))
{
    $data[] = $row;//add row to data array
}
//code
//then:
$fh = fopen('export.csv', 'w');
foreach ($data as $line)
{
    fputcsv($fh, $line);
}
fclose($fh);

易。