php 下载.csv,php 文件流的形式下载csv
使用文件流下載csv原因
使用php 下載excel 經(jīng)常會(huì)因?yàn)槲募?導(dǎo)致內(nèi)存不足 下載失敗
直接上代碼
$columns = [
'u_id',
'用戶(hù)姓名'
];
$items=[["u_id"=>1,"用戶(hù)姓名"=>"x1"],["u_id"=>2,"用戶(hù)姓名"=>"x2"]];
//定義文件名稱(chēng)
$csvFileName = date("Ymd").'hero.csv';
//設(shè)置好告訴瀏覽器要下載excel文件的headers
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'. $csvFileName .'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$fp = fopen('php://output', 'a');//打開(kāi)output流
mb_convert_variables('UTF-8', 'UTF-8', $columns);
fputcsv($fp, $columns);//將數(shù)據(jù)格式化為CSV格式并寫(xiě)入到output流中
$accessNum =count($items);
$perSize=1000; //設(shè)置每次下載數(shù)量
$pages = ceil($accessNum / $perSize);
for($i = 0; $i < $pages; $i++) {
$rowDatas = array_slice($items,$i*$perSize,1000);
foreach ($rowDatas as $rowData){
mb_convert_variables('UTF-8', 'UTF-8', $rowData);//utf-8入 utf-8出
fputcsv($fp, $rowData);
}
unset($accessLog);//釋放變量的內(nèi)存
//刷新輸出緩沖到瀏覽器
ob_flush();
flush();//必須同時(shí)使用 ob_flush() 和flush() 函數(shù)來(lái)刷新輸出緩沖。
}
fclose($fp);
總結(jié)
以上是生活随笔為你收集整理的php 下载.csv,php 文件流的形式下载csv的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java lang报错_java.lan
- 下一篇: php判断目录是否有写的权限,php中判