現在の位置: ホーム> 最新記事一覧> PHPでのCSVファイルの効率的な処理のための実用的な方法と例

PHPでのCSVファイルの効率的な処理のための実用的な方法と例

M66 2025-07-10

PHP関数を使用してCSVデータを処理する基本的な方法

CSV(CommaSeparated値)は、広く使用されている構造化されたテキストデータ形式です。 PHPには、CSVファイルを簡単に読み取り、書き込み、操作できるさまざまな組み込み関数があり、開発作業を大幅に簡素化します。

CSVファイルを読み取ります

$handle = fopen('data.csv', 'r');
while (($row = fgetcsv($handle)) !== FALSE) {
    // データの各行を処理します
}
fclose($handle);

CSVファイルに書き込みます

$handle = fopen('data.csv', 'w');
fputcsv($handle, ['col1', 'col2', 'col3']);
fclose($handle);

CSV行データの解析

$row = fgetcsv($handle);
$values = explode(',', $row[0]);

CSV行としてのスプライスアレイ

$row = ['col1', 'col2', 'col3'];
$csvLine = implode(',', $row);

大規模なCSVファイルを処理するための最適化方法

メモリが限られている環境の場合、ジェネレーターベースのSplfileObjectクラスを使用すると、メモリオーバーフローを効果的に回避でき、大きなファイルの処理に適しています。

 $handle = fopen('data.csv', 'r');
$csv = new SplFileObject('data.csv');
$csv->setFlags(SplFileObject::READ_CSV);

foreach ($csv as $row) {
    // データの各行を処理します
}

実用的な例:CSVファイルからユーザーデータをインポートします

ユーザー名、電子メール、およびパスワードを備えたCSVファイルがあるとします。次のコードは、ファイルの読み方とユーザーのインポート方法を示しています。

 // 開ける CSV 書類
$handle = fopen('users.csv', 'r');

// タイトル行をスキップします
fgetcsv($handle);

// ユーザーデータラインを読み取り、処理します
while (($row = fgetcsv($handle)) !== FALSE) {
    $username = $row[0];
    $email = $row[1];
    $password = $row[2];

    // ここでは、カスタム関数を呼び出してユーザーを挿入します
    insert_user($username, $email, $password);
}

fclose($handle);