首頁 > php教程 > php手册 > 主體

PHP 讀取/匯出 CSV文件

WBOY
發布: 2016-08-04 08:56:18
原創
1254 人瀏覽過

工作中常會有遇到導入/導出的需求,以下是常用的方法。
讀取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文件

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!