PHP生成导出CSV之内部换行PHP_EOL

  •   
  • 6188
  • PHP
  • 0
  • super_dodo
  • 2018/07/04

我们在做一些系统功能的时候,需要导出相应的报表数据,诚然PHPExcel是挺好的,可以设置样式色彩等,更适合阅读体验。但是当数据量大的时候PHPExcel就显得捉襟见肘,尤其是上万的数据,从效率性能文件大小等请选择CSV。

CSV是以逗号作为分界符号的,但是我们在有些时候希望有换行,譬如一个单元格里面希望展示多个用户,以换行的形式展示,如下图。

php_csv_eol

在你需要换行的时候请使用PHP_EOL.直接上代码,如下所示:


//在你需要换行的时候请使用PHP_EOL
$csvData[] = ['111', '2222', '3333'];
$csvData[] = ['44444', '王大锤'.PHP_EOL.'李大傻', '3333'];


$path = '/tmp/dodobook.csv';
$fp = fopen($path, 'w');

//加上bom头告诉excel软件用utf8格式打开
fputs($fp, (chr(0xEF) . chr(0xBB) . chr(0xBF)));

//循环写数据
foreach($csvData as $row){
	fputcsv($fp, $row);
}

fclose($fp);

//就是这么简单粗暴,拿去用。

//此外如果是你采集来的数据,需要替换html中的换行的话,可以使用下面的方式进行替换.

$htmlTag = ['<br>','<br/>','<br />'];
$newStr = str_replace($htmlTag, PHP_EOL, $oldStr);

别人永远偷不走的是你心中的梦想与你身上的气质