ホームページ  >  記事  >  バックエンド開発  >  大きな CSV ファイルを 1 行ずつ読み取って処理するための PHP コード例_PHP チュートリアル

大きな CSV ファイルを 1 行ずつ読み取って処理するための PHP コード例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:34:33891ブラウズ

数百万のデータ項目を含む CSV ファイルの場合、ファイル サイズが数百 MB に達する可能性があり、単に読み込むとタイムアウトまたはフリーズする可能性があります。

CSV ファイルのデータをデータベースに正常にインポートするには、バッチ処理が非常に必要です。

次の関数は、CSV ファイルで指定されたデータの特定の行を読み取ります:

コードをコピーします コードは次のとおりです:

/**
* csv_get_lines CSV ファイル内の特定の行のデータを読み取ります
* @param $csvfile CSV ファイルのパス
* @param $lines 行数を読み取ります
* @param $offset 開始行番号
* @return array
**/
function csv_get_lines($csvfile, $lines) , $ offset = 0) {
if(!$fp = fopen($csvfile, 'r')) {
return false;
}
$i = $j = 0;
while (false !== ($line = fgets ($fp))) {
if($i++ < $offset) {
continue; }
Break;
}
$data = array();
while(($j++ < $lines) && !feof ($fp)) {
$data[] = fgetcsv($fp);
}
fclose($fp);
return $data;
}
Callメソッド:

コードをコピーコードは次のとおりです:
$data = csv_get_lines('path/bigfile.csv', 10, 2000000);
print_r($data);
この関数は主に行位置決めのアイデアを使用して、開始行番号をスキップすることでファイルポインターの位置決めを実現します。

上記の機能は 500M 以内のファイルでテストされていますが、それより大きなファイルではテストされていません。使用または改善を検討してください。

http://www.bkjia.com/PHPjc/751506.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/751506.html技術記事数百万のデータ項目を含む CSV ファイルの場合、ファイル サイズが数百 MB に達する場合があり、単に読み込むとタイムアウトまたはフリーズする可能性があります。 CSV ファイルのデータを正常に変換するには...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。