搜尋
首頁php教程php手册PHP 讀取/匯出 CSV文件

工作中常會有遇到導入/導出的需求,以下是常用的方法。
讀取CSV文件,可以分頁讀取,設定讀取行數,起始行數即可。
匯出CSV文件,用兩種方法實作。

/**<br>  * 讀取CSV檔案<br>  * @param string $csv_file csv檔案路徑<br>  * @param int $lines       讀取行數<br>  * @param int $offset      起始行數<br>  * @return array|bool<br>  */<br> 公用函數 read_csv_lines($csv_file ='',$lines = 0,$offset = 0)<br> {<br>     if (!$fp = fopen($csv_file, 'r')) {<br>         返回 false;<br>     }<br>     $i = $j = 0;<br>     while (false!==($line = fgets($fp))) {<br>         如果($i++             則續;<br>         }<br>         休息;<br>     }<br>     $data = array();<br>     while (($j++         $data[] = fgetcsv($fp);<br>     }<br>     fclose($fp);<br>     返回$資料;<br> }<br> <br> <br> /**<br>  * 匯出CSV檔案<br>  * @param array $data        資料<br>  * @param array $header_data 首行資料<br>  * @param string $file_name  檔案名稱<br>  * @return string<br>  */<br> 公用函數export_csv_1($data=[],$header_data=[],$file_name='')<br> {<br>     header('內容類型:應用程式/八位元組流');<br>     header('Content-Disposition: 附件; filename='.$file_name);<br>     如果(!空($ header_data)){<br>         echo iconv('utf-8','gbk//TRANSLIT','"'.implode('","',$header_data).'"'."n");<br>     }<br>     foreach($data as $key => $value){<br>         $輸出=陣列();<br>         $output[] = $value['id'];<br>         $output[] = $value['name'];<br>         echo iconv('utf-8','gbk//TRANSLIT','"'.implode('","', $output).""n");<br>     }<br> }<br> <br> /**<br>  * 匯出CSV檔案<br>  * @param array $data        資料<br>  * @param array $header_data 首行資料<br>  * @param string $file_name  檔案名稱<br>  * @return string<br>  */<br> 公用函數export_csv_2($data=[],$header_data=[],$file_name='')<br> {<br>     header('Content-Type: application/vnd.ms-excel');<br>     header('內容處置:附件;filename='.$file_name);<br>     header('Cache-Control: max-age=0');<br>     $fp=fopen('php://output','a');<br>     如果(!空($ header_data)){<br>         foreach($header_data as $key => $value){<br>             $header_data[$key] = iconv('utf-8', 'gbk', $value);<br>         }<br>         fputcsv($fp, $header_data);<br>     }<br>     $num = 0;<br>     //每隔$limit行,刷新輸出buffer,不要太大,也不要太小<br>    $limit = 100000;<br>     //逐行取出數據,不浪費記憶體<br>     $count = count($data);<br>     if ($count > 0) {<br>         for ($i = 0; $i              $num++;<br>             //刷新輸出buffer,以防止因資料過多造成問題<br>             if ($limit == $num) {<br>                 ob_flush();<br>                 flush();<br>                 $num = 0;<br>             }<br>             $row = $data[$i];<br>             foreach ($row as $key => $value) {<br>                 $row[$key] = iconv('utf-8', 'gbk', $value);<br>             }<br>             fputcsv($fp, $row);<br>         }<br>     }<br>     fclose($fp);<br> }更多【乾貨分享】,請關注PHP工程師訂閱號。
PHP 讀取/匯出 CSV文件

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用