php如何對csv大檔案進行讀取並匯入資料庫?
對於數百萬條資料量的csv檔案,檔案大小可能達到數百m,如果簡單讀取的話很可能出現超時或者卡死的現象。
為了成功將csv檔案裡的資料匯入資料庫,分批處理是非常必要的。
下面這個函式是讀取csv檔案中指定的某幾行資料:
呼叫方法:/**
* csv_get_lines 讀取csv檔案中的某幾行資料
* @param
$csvfile csv檔案路徑
* @param
$lines 讀取行數
* @param
$offset 起始行數
* @return
array
* */
function
csv_get_lines
($csvfile
,$lines
,$offset=0
)$i=$j
=0;while
(false !==
($line
=fgets
($fp
)))break;}
$data
=array
();while
(($j
++<
$lines)&&
!feof
($fp
))fclose
($fp
);return
$data
;}
$data = csv_get_lines('path/bigfile.csv', 10, 2000000);
print_r($data);
函式主要採用行定位的思路,通過跳過起始行數來實現檔案指標定位。
至於資料如何入庫本文不再詳細講述。
上述函式對500m以內的檔案進行過測試,執行通暢,對於更大的檔案未做測試,請斟酌使用或加以改進。
php 讀取大檔案
在php中,對於檔案的讀取時,最快捷的方式莫過於使用一些諸如file file get contents之類的函式,簡簡單單的幾行 就能 很漂亮的完成我們所需要的功能。但當所操作的檔案是乙個比較大的檔案時,這些函式可能就顯的力不從心,下面將從乙個需求入手來說明對於讀取大檔案時,常用的操作方法。需求需...
php讀取大檔案
本文章來給各位同學介紹php中讀取大檔案實現方法詳解吧,有需要了解的同學可進入參考參考。需求如下 現有乙個1g左右的日誌檔案,大約有500多萬行,用php返回最後幾行的內容。實現方法 直接採用file函式來操作 注 由於 file函式是一次性將所有內容讀入記憶體,而php為了防止一些寫的比較糟糕的程...
php讀取csv檔案
開始討論php操作csv檔案的問題之前,我們先首先了解一下什麼是csv檔案。csv是最通用的一種檔案格式,它可以非常容易地被匯入各種pc 及資料庫中。此檔案,一行即為資料表的一行。生成資料表字段用半形逗號隔開。了解到這裡我們看清楚了csv檔案的最大特點,以行排列,每行中的每個數值用逗號隔開。看到這裡...