PHP讀取CSV大檔案匯入資料庫

2021-07-07 02:17:33 字數 965 閱讀 4882

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檔案的最大特點,以行排列,每行中的每個數值用逗號隔開。看到這裡...