下面就通过代码示例来具体介绍一下:
使用静态数据创建CSV文件
如果要将数据存储到csv文件中,则可以使用与以下类似的代码:
?php// 创建并打开“demosaved.csv”文件进行写入$file = fopen( demosaved.csv , w // 保存列标题fputcsv($file, array( Column 1 , Column 2 , Column 3 , Column 4 , Column 5 // 样本数据,这可以从MySQL中获取$data = array(array( Data 11 , Data 12 , Data 13 , Data 14 , Data 15 ),array( Data 21 , Data 22 , Data 23 , Data 24 , Data 25 ),array( Data 31 , Data 32 , Data 33 , Data 34 , Data 35 ),array( Data 41 , Data 42 , Data 43 , Data 44 , Data 45 ),array( Data 51 , Data 52 , Data 53 , Data 54 , Data 55 )// 保存每一行数据foreach ($data as $row)fputcsv($file, $row);// 关闭文件fclose($file);?
代码说明
第3行:打开文件,文件名为“demosaved.csv”,用于书写。确保服务器可以写入保存此文件的位置
第6行:添加列标题。如果不想要任何列标题,可以跳过此步骤。
第9-15行:表示要存储在文件中的数据。如果你想从mysql中获取数据,你必须用代码来连接数据库并获取数据,进而替换这些行来
第17-21行:遍历每行数据并保存数据
第24行:关闭文件。在我们完成将所有数据写入文件后,需要把文件关闭。
从mysql获取数据来创建并自动下载CSV文件
?php// 设置输出标头,以便下载文件header( Content-type: text/csv header( Content-Disposition: attachment; filename= demo.csv // 不缓存文件header( Pragma: no-cache header( Expires: 0 // 创建连接到输出流的文件指针$file = fopen( php://output , w // 打开数据库连接$link = mysqli_connect( localhost , my_user , my_password , my_db //查询数据库$query = SELECT field1, field2, field3, field4, field5 FROM table 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 相关教程栏目!!!
以上就是如何使用PHP创建CSV文件?(代码示例)的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答