csv文件中的数据格式不正确,在cakephp中显示一些html代码

gg0vcinb  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(175)

csv文件中的数据格式不正确,仅在一列中显示为javascript代码或html代码
用户控制器中的代码

for export data in csvfile from database of user table 
    public function export() {
            $this->response->download("export.csv");

            $data = $this->Users->find('all');
            $this->set(compact('data'));

            $this->layout = 'ajax'; 

            return;
        }

    // app/Views/Users/export

    header('Content-type: text/csv');
    header("Content-Disposition: attachment; filename=export.csv");  

    foreach ($data as $row) {
        foreach ($row['Users'] as $cell) {
            // Escape double quotation marks
            $cell = '"' . preg_replace('/"/','""',$cell) . '"';
        }
        echo implode(',', $row['Users']) . "\n";
    }

输出屏幕截图:

yqyhoc1h

yqyhoc1h1#

正如我在这里看到的,看起来像是调试栏的调试变量或类似的东西(因为我没有你的csv文件的完整视图)所以我可以建议一些行动来检查,因为我知道:

  • 检查“您的模板”文件,如$this->layout = 'ajax';所示。它可能包含默认调试栏或自定义代码。空 * AJAX 布局**看起来像this
  • 因为CSV文件不是普通的视图。所以最好你只是设置这个动作不使用任何视图布局使用$this->layout = false;或在蛋糕3使用$this->viewBuilder()->layout(false);

有时候php代码也会注入到输出文件或视图页面,因为你的代码有通知或警告信息。所以请检查完整的csv文件,从html代码开始的地方开始读取,你就会明白问题所在

相关问题