ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用して大きな CSV ファイルを読み取り、データベースにインポートする方法

PHP を使用して大きな CSV ファイルを読み取り、データベースにインポートする方法

墨辰丷
リリース: 2023-03-26 18:30:02
オリジナル
2087 人が閲覧しました

この記事では主にPHPで大容量のCSVファイルをデータベースに読み込む方法を紹介しますので、興味のある方は参考にしていただければ幸いです。

PHP はどのようにして大きな CSV ファイルを読み取り、データベースにインポートしますか?

数百万のデータ項目を含む 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;
}
ログイン後にコピー

メソッドの呼び出し:

$data = csv_get_lines(&#39;path/bigfile.csv&#39;, 10, 2000000);

print_r($data);
ログイン後にコピー

この関数は主にのアイデア行の位置決めでは、開始行番号をスキップすることでファイル ポインターの位置決めを実現します。

データがデータベースにどのように保存されるかについては、この記事では詳しく説明しません。

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

PHP が大きな CSV ファイルを読み取ってデータベースにインポートするこの例は、エディターによって共有されるすべての内容です。参考にしていただければ幸いです。

関連する推奨事項:

php自動バックアップデータベーステーブルメソッド

phpmysqlデータベースクラスをカプセル化する方法

phpphpがmongodbをカプセル化する方法データベース

以上がPHP を使用して大きな CSV ファイルを読み取り、データベースにインポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート