久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日頭條 焦點資訊 營銷之道 企業報道 淘寶運營 網站建設 軟件開發 400電話
  當前位置: 首頁 » 資訊 » 軟件開發 » 正文

PHP數據導出知識點詳解

放大字體  縮小字體 發布日期:2018-02-22  來源:企業800網  作者:新格網  瀏覽次數:771  【去百度看看】
核心提示:最近在做后臺管理的項目,后臺通常有數據導出到 excel 的需要,經過之前搜索通常推薦使用的是 php excel ,我經常使用的是 laravel ,對于 php excel 也有很好用的對應 package。
最近在做后臺管理的項目,后臺通常有數據導出到 excel 的需要,經過之前搜索通常推薦使用的是 php excel ,我經常使用的是 laravel ,對于 php excel 也有很好用的對應 package。

開始使用是非常好用的,但是當需要導出的數據達到上萬條時就直接帶來內存不足的問題。

然后我找到了幾個解決方案。

前端解決方案

PHP配合SheetJS/js-xlsx導出Excel大量數據

這個方案好處的不需要額外的接口,但是要依賴于前端開發者。

導出成 csv

該方案速度較快,完全后端實現,缺點是 csv 格式對導出的形式要求比較高,要求是純數據,不能存在圖片之類的富文本形式。

下面主要介紹一下導出 csv 的方式

php 官方文檔 的介紹


<?php

$list = array (
  array('aaa', 'bbb', 'ccc', 'dddd'),
  array('123', '456', '789'),
  array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
  fputcsv($fp, $fields);
}

fclose($fp);
?>

導出完整例子


<?php

$name = 'test';
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=".$name.".csv" );
header ('Cache-Control: max-age=0');

//打開PHP文件句柄,php://output 表示直接輸出到瀏覽器
$fp = fopen('php://output', 'a');  

// 寫入BOM頭,防止亂碼
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); 

// 生成的測試數據
function test()
{
  for ($i=0; $i < 150000; $i++) {
    yield ['name', $i, '男'];
  }
}

// 表頭
$headers = ['名字', '年齡', '性別'];

fputcsv($fp, $headers);

foreach (test() as $value) {
  fputcsv($fp, $value);
}

fclose($fp);
?>

在 laravel 中配合 chunk 使用可以方便快速導出全部數據。

相關推薦:

Python如何將數據導出excel的技巧分享

投機型:如何利用PHP將數據導出到Excel表中(圖文解說)

php將數據導出為execl文件格式

以上就是PHP數據導出知識點詳解的詳細內容,更多請關注php中文網其它相關文章!

 
關鍵詞: php,知識點,導出
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規舉報 ]  [ 關閉窗口 ]

 
0條 [查看全部]  相關評論

 
網站首頁 | 關于我們 | 聯系方式 | 使用協議 | 版權隱私 | 網站地圖 | 排名推廣 | 廣告服務 | 積分換禮 | 網站留言 | RSS訂閱 | 吉ICP備11001726號-6
企業800網 · 提供技術支持