【问题标题】:How to remove HTML from CSV Export in wordpress? [duplicate]如何从 wordpress 中的 CSV 导出中删除 HTML? [复制]
【发布时间】:2020-04-15 22:18:26
【问题描述】:

我正在 wordpress 中创建一个插件,我正在尝试从数组中导出数据,它可以工作。但问题在于它也打印 HTML 的输出。

所以请帮我解决这个问题。

这是我尝试的 PHP 代码

public function export_data()
{
        ob_start();
        $filename = "export_data" . rand(1, 100) . ".csv";
        $export_data = $this->order_detail_items();
        ob_end_flush();

        $output = fopen("php://output", 'w') or die("Can't open php://output");
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Content-Description: File Transfer');
        header('Content-type: text/csv');
        header("Content-Disposition: attachment; filename={$filename}");
        header('Expires: 0');
        header('Pragma: public');
        fputcsv($output, array('Store Name', 'Product name', 'Sell Quantity', 'Date', '(£) Total Price'));

        foreach ($export_data as $key => $data) {
            fputcsv($output, $data);
        }

        fclose($output);

        die();
}

感谢任何解决方案!

【问题讨论】:

  • 你能给我们看看html样本吗?
  • @ttrasn 当然,我会告诉你的,请检查更新后的帖子
  • 其实我在你的csv 上没有找到html。你能告诉我它在哪里吗?或者你能拍照吗?
  • @ttrasn 请检查,现在可以看到图片了

标签: php wordpress


【解决方案1】:

首先我在您的结果中看到java script tags

您可以通过以下方式删除此标签:

 $html = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $html);

你可以使用strip_tags函数删除你的html标签。

$html = strip_tags($html);

最后。您可以将代码更改为:

foreach ($export_data as $key => $data) {
    $data = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $data);
    $data = strip_tags($data);
    fputcsv($output, $data);
}

【讨论】:

  • 但是有整个页面的html,从&lt;html&gt;开始到&lt;/html&gt;,我该如何摆脱这个?
  • @RobinSingh 您可以在 php.ini 中使用 strip_tags 函数删除标签。我在回答中使用了它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多