假设我有一个数据库....有没有办法通过PHP将数据库中的内容导出到CSV文件(以及文本文件[如果可能])中?

推荐答案

我个人使用此函数从任何数组创建CSV内容.

function array2csv(array &$array)
{
   if (count($array) == 0) {
     return null;
   }
   ob_start();
   $df = fopen("php://output", 'w');
   fputcsv($df, array_keys(reset($array)));
   foreach ($array as $row) {
      fputcsv($df, $row);
   }
   fclose($df);
   return ob_get_clean();
}

然后,您可以使用以下方法让用户下载该文件:

function download_send_headers($filename) {
    // disable caching
    $now = gmdate("D, d M Y H:i:s");
    header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
    header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
    header("Last-Modified: {$now} GMT");

    // force download  
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");

    // disposition / encoding on response body
    header("Content-Disposition: attachment;filename={$filename}");
    header("Content-Transfer-Encoding: binary");
}

用法示例:

download_send_headers("data_export_" . date("Y-m-d") . ".csv");
echo array2csv($array);
die();

Php相关问答推荐

PHP等效于SQL的DATEDiff

如何使用查询范围在Statamic中按组过滤用户?

使用WooCommerce本机产品短码时不考虑价格筛选(_SHORT CODE)

LaravelEloquent 的地方条件父/子与第三模型多对多

致命错误:未捕获错误:Google\Auth\HttpHandler\HttpHandlerFactory::build()

在Laravel Eloquent中实现一对多关系

添加并显示单价字段到WooCommerce产品变化

在WooCommerce上克隆订单时使用`add_product()`添加产品元数据

Laravel Carbon DiffForHumans选项(年,月,天)

如果WooCommerce购物车在 checkout 时被清空,请重定向至store 页面

如何使用PHP从TXM(XML)标记中读取特定属性

根据WooCommerce的定制订单状态增加产品库存

在具有Angular 的 Laravel 应用程序中,不显示图像

如何用十进制和字母数字减go 和添加 id

从插件更改主题功能,function_exists 不起作用

PHP简单地将物品装在盒子里会导致未使用的空间,但还有剩余容量

htaccess Rewriterule 无法以任何方式工作

PHP preg_replace括号和方括号内的所有逗号

按数字然后按字符串对关联 PHP 数组进行排序

Laravel 响应 html 默认页面忽略控制器