首頁  >  文章  >  後端開發  >  php 逐行讀取csv資料入庫

php 逐行讀取csv資料入庫

不言
不言原創
2018-04-16 16:06:391487瀏覽


需求:把從Execel檔案匯出的csv數據,匯入資料庫

#解決方案如下:
##

 // 判断文件是否上传成功
        if (empty($_FILES['file1']) && $_FILES['file1']['error'] != 0) {
            return 'Error file1';
        } else {
            $filename = $_FILES['file1']['tmp_name'];
        }

        // 组装数据
        $fields = ['name', 'age', 'telephone'];
        $fields_cnt = count($fields);
        
        // 用二进制打开文件,避免编码问题
        $fp_in = @fopen($filename, "rb");
        while (!feof($fp_in)) {
            $line = fgets($fp_in);
            if ($line) {
                $arr = explode(',', $line);
                // 待插入数据格式化
                $fmt = array_map(function ($v) {return ($v == 0) ? $v : ((int) $v);}, $arr);
                $data[] = array_combine($fields, array_splice($fmt, 1, $fields_cnt));
            }
        }
        fclose($fp_in);

        // TP数据批量入库
        $q = M("excel_1")->addAll($data);

小結:

檔案運算函數系列:fopen,feof,fgets,fclose 分別打開,尋末,取行,關閉

資料格式化的意義:作為A資料庫的匯出數據,會有整形「 的數據,格式化可以自動去掉"符號

array_combine鍵值合併數組。


相關推薦:

Php讀取資料的基本操作

php讀取本機json檔案的實例分享

PHP進行讀取CSV檔案資料與產生CSV檔案#

以上是php 逐行讀取csv資料入庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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