<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 導出CSV文件 在做系統的時候,經常會遇到需要導出excel的情況,但是由于phpExcel占用內存較高,導出大量數據時實在太慢,所以退而求其次的選擇以CSV格式來導出數據。 ### 功能簡述 1. 代碼以工具類的格式展示 2. 傳入表頭和數據,自動拼裝并且生成CSV文件提供下載 ### 知識點 1. **響應頭** - 由于Excel只支持GBK編碼,所以需要聲明導出內容的編碼;由于是以文件的格式輸出,所以要生成文件名稱。 2. **文件流** - 因為要輸出文件流,所以會用到相關的內容 3. **編碼轉換** - 數據的編碼是UTF-8,需要轉換成GBK ### 實現代碼 ``` <?php class csvUtil { /** * csv文件輸出方法 * @param array $header 表頭 * @param array $funcName 數據 */ static function output($head, $data) { // 超時設置 set_time_limit(60); // 頭文件 header("Content-type: text/html; charset=gbk"); // 特別說明:excel需要支持中文的時候要將輸出內容的編碼轉為gbk header('Content-Disposition: attachment;filename="文件名.csv"'); header('Cache-Control: max-age=0'); // 開啟文件流 $fp = fopen('php://output', 'a'); // 輸出Excel列頭信息 foreach ($head as $i => $v) { // 編碼轉換 $head[$i] = iconv('utf-8', 'gbk', $v); } // 寫入列頭 fputcsv($fp, $head); // 統計行數,減去1,得出數據最大下標,用于數組循環完之后輸出緩存 $maxIndex = count($data); // 這邊只是簡單的數據讀取,這里還可以優化 foreach ($data as $k => $v) { // 轉碼并寫入csv foreach ($v as $i => $j) { // 這里對數字做了特殊處理 $v[$i] = is_numeric($j) ? $j . "\t" : iconv('utf-8', 'gbk', $j); } // 寫入行數據 fputcsv($fp, $v); // 每1000條數據輸出一次緩存 if (($k != 0 && $k % 1000 == 0) || $k == $maxIndex) { ob_flush(); flush(); } } } } ``` ### 使用案例 ``` $data = []; $i = 10000; while ($i > 0) { $data[] = array('內容' . $i . '1', '內容' . $i . '2', '內容' . $i . '3'); $i--; } csvUtil::output(array('字段1', '字段2', '字段3'), $data); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看