PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

如何使用PHP创建CSV文件?(代码示例)

青灯夜游
青灯夜游 原创
2019-02-16 16:32:06 3428浏览

csv(逗号分隔值)是在应用程序之间传输表格数据的最常用方法之一;创建将数据导出到csv的代码在许多应用程序中非常有用。下面本篇文章就来带大家了解如何使用php创建csv文件,希望对大家有所帮助。

下面就通过代码示例来具体介绍一下:

使用静态数据创建CSV文件

如果要将数据存储到csv文件中,则可以使用与以下类似的代码:

<?php
// 创建并打开“demosaved.csv”文件进行写入
$file = fopen(&#39;demosaved.csv&#39;, &#39;w&#39;);
 
// 保存列标题
fputcsv($file, array(&#39;Column 1&#39;, &#39;Column 2&#39;, &#39;Column 3&#39;, &#39;Column 4&#39;, &#39;Column 5&#39;));
 
// 样本数据,这可以从MySQL中获取
$data = array(
array(&#39;Data 11&#39;, &#39;Data 12&#39;, &#39;Data 13&#39;, &#39;Data 14&#39;, &#39;Data 15&#39;),
array(&#39;Data 21&#39;, &#39;Data 22&#39;, &#39;Data 23&#39;, &#39;Data 24&#39;, &#39;Data 25&#39;),
array(&#39;Data 31&#39;, &#39;Data 32&#39;, &#39;Data 33&#39;, &#39;Data 34&#39;, &#39;Data 35&#39;),
array(&#39;Data 41&#39;, &#39;Data 42&#39;, &#39;Data 43&#39;, &#39;Data 44&#39;, &#39;Data 45&#39;),
array(&#39;Data 51&#39;, &#39;Data 52&#39;, &#39;Data 53&#39;, &#39;Data 54&#39;, &#39;Data 55&#39;)
);
 
// 保存每一行数据
foreach ($data as $row)
{
fputcsv($file, $row);
}
 
// 关闭文件
fclose($file);
?>

代码说明

第3行:打开文件,文件名为“demosaved.csv”,用于书写。确保服务器可以写入保存此文件的位置

第6行:添加列标题。如果不想要任何列标题,可以跳过此步骤。

第9-15行:表示要存储在文件中的数据。如果你想从mysql中获取数据,你必须用代码来连接数据库并获取数据,进而替换这些行来

第17-21行:遍历每行数据并保存数据

第24行:关闭文件。在我们完成将所有数据写入文件后,需要把文件关闭。

从mysql获取数据来创建并自动下载CSV文件

<?php
// 设置输出标头,以便下载文件
header(&#39;Content-type: text/csv&#39;);
header(&#39;Content-Disposition: attachment; filename="demo.csv"&#39;);
 
// 不缓存文件
header(&#39;Pragma: no-cache&#39;);
header(&#39;Expires: 0&#39;);
 
// 创建连接到输出流的文件指针
$file = fopen(&#39;php://output&#39;, &#39;w&#39;);
 
// 打开数据库连接
$link = mysqli_connect(&#39;localhost&#39;, &#39;my_user&#39;, &#39;my_password&#39;, &#39;my_db&#39;);
 
//查询数据库
$query = &#39;SELECT field1, field2, field3, field4, field5 FROM table&#39;;
 
if ($rows = mysqli_query($link, $query))
{
// 保存每一行数据
while ($row = mysqli_fetch_assoc($rows))
{
fputcsv($file, $row);
}
//自由结果集
mysqli_free_result($result);
}
// 关闭连接
mysqli_close($link);
?>

代码说明:

因为我们要下载文件,所以我们必须发送一些头文件(第3行和第4行),告诉浏览器下载该文件。

第3行:告诉浏览器内容的MIME类型是text / csv,因为我们要发送一个csv文件

第4行:发送标头“Content-Disposition”,其值为“attachment”,文件名为“demo.csv”。这将告诉浏览器下载名为“demo.csv”的文件,而不是显示它。

第7行和第8行:告诉浏览器不要缓存文件。如果我们发送多个同名文件,这很有用,否则这不是必需的

第11行:表示打开文件指针以发送数据

第14行~第30行:从mysql获取数据

注:需要确保更改数据库的连接参数和查询。此外,该数据库相关代码仅是一个示例。在实际应用程序中,它可能位于不同的文件中,并且还应该有错误处理。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一条:fgetc函数怎么用 下一条:file函数怎么用