【问题标题】:How to download PHP table into CSV file [duplicate]如何将 PHP 表下载到 CSV 文件中[重复]
【发布时间】:2012-07-17 23:43:17
【问题描述】:
可能重复:
Create a CSV File for a user in PHP
尽管标题看起来很简单,但我的问题有点不同。
我需要将我的 php 表的数据导出到 CSV 文件中。
我的页面有一个简单的表单,允许用户选择日期和其他一些变量,一旦用户提交表单,我就会创建表格。我的表单的操作是针对同一页面的。
现在我想添加一个按钮,将数据表导出为 CSV 文件。
我创建了一个 PHP 函数来导出带有当前变量的数据。
如果不使用表单,我找不到任何可以调用 php 函数的内容。
但是当我使用表单时,我丢失了所有计算,因此我需要再次发布所有内容并一次又一次地进行查询。
还有其他更好的下载表格数据的方法吗?
【问题讨论】:
标签:
php
mysql
sql
export-to-csv
【解决方案1】:
当您希望人们从您的站点下载文件时,您需要将正确的 http 标头和应用程序文件扩展名发送到浏览器,以便它有一点机会下载它。然后你可以逐行回显mysql表。这样您就可以下载千兆字节的数据库。最好的方法是使用 ajax 请求来做到这一点。完全不需要创建临时文件和下载链接。
这是一个类似问题的链接:Create a CSV File for a user in PHP
如果您不喜欢 echo,您可以打开一个 php 文件处理程序并将 fputcsv 与 header 命令一起使用。请参阅 Xenocross 的答案。
【解决方案2】:
header ( "Content-Type: application/vnd.ms-excel" );
header ( "Content-disposition: attachment; filename=Export.csv" );
header ( "Content-Type: application/force-download" );
header ( "Content-Transfer-Encoding: binary" );
header ( "Pragma: no-cache" );
header ( "Expires: 0" );
echo ('"data1","data2" \n "data1","data2" ');