【问题标题】:Create and download a clean CSV using PHP in a CMS在 CMS 中使用 PHP 创建和下载干净的 CSV
【发布时间】:2020-09-28 14:48:25
【问题描述】:

我正在使用 Concrete5 CMS,并试图让用户下载其他用户(他们邀请的用户)的子集。

为此,我正在创建一个新页面并使用以下内容:

  $new_csv = fopen('members.csv', 'w');
  $array = array("foo", "bar", "hello", "world"); // For testing
  fputcsv($new_csv, $array);
  fclose($new_csv);

  header("Content-type: text/csv");
  header("Content-disposition: attachment; filename = members.csv");
  readfile("members.csv");

我遇到的问题是这是写整个页面。有没有办法在不使用标题的情况下做到这一点?我的方法可能完全不对,所以如果有更好的方法来实现这一点,请告诉我。

【问题讨论】:

  • diecsv输出结束后的脚本。
  • 我不确定我知道你所说的“写整个页面”是什么意思。你能更详细地描述一下这个问题吗?
  • 我正在使用 CMS 来提取相关的用户数据。我想输出一个 CSV,但如果我这样做,它会输出所有的 CMS HTML。
  • @u_mulder,简直不敢相信这么简单。请给它作为答案,我会标记它是正确的?
  • die 不是正确的方法。你应该使用Core::make('app')->shutdown();

标签: php csv content-management-system export-to-csv concrete5


【解决方案1】:

您可以使用Core::make('app')->shutdown(); 来解决此问题。

但是为了以更好的方式进行导出- 检查\Concrete\Controller\SinglePage\Dashboard\Users\Search::csv_export() 方法。 这将是非常相似的。只需将过滤后的用户列表设置为 $writer->insertList($list) 方法即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    相关资源
    最近更新 更多