在laravel 4中下载/导出csv文件时如何避免空行

时间:2014-12-30 10:29:18

标签: php mysql laravel-4 export-to-csv

您好我正在使用laravel 4开发一个应用程序,当我尝试以csv格式下载我的报告时,它会在标题之前插入4个新的空行,我想摆脱那些空行。

这是我的代码

public function getDownloadCsv()
    {

        // Grab all the assets
        $assettypes = Assettype::orderBy('id', 'ASC')->select('id', 'asset_type')->get();


        $rows = array();

        // Asset Type Id
        $header = array(
            Lang::get('admin/assetdetails/table.assetnum'),
            Lang::get('admin/assetdetails/table.asset_name'),

        );
        $header = array_map('trim', $header);
        $rows[] = implode($header,',');

        // Create a row per asset
        foreach ($assettypes as $assettype) {
            $row = array();
            $row[] = $assettype->id;
            $row[] = $assettype->asset_type;
            $rows[] = implode($row,',');
        }

          // spit out a csv
         $csv = implode($rows,("\n"));
         $response = Response::make($csv, 200);
         $response->header('Content-Type', 'text/csv');
         $response->header('Content-disposition', 'attachment;filename=Help_document_for_asset_import.csv');
         return $response;
        } 

如果您需要任何进一步的细节,请告诉我。 请帮我实现这个目标....

2 个答案:

答案 0 :(得分:1)

最后我解决了这个问题,感谢Adrenaxus有价值的评论,我所做的就是在关闭php标签后删除所有空行。请注意,你必须在应用程序的所有php文件中执行此操作。

在我的情况下,我检查了当前正在工作的文件并且无法替换其他php文件中的空行,但问题仍然存在,删除所有php文件中的空白区域就行了。

答案 1 :(得分:0)

我确实使用函数ob_clean()解决了这个问题,您可能还需要使用ob_start()ob_end_clean(),具体取决于您的代码。