PHP

PHPでCSVファイルを出力する方法

2021年8月6日

はじめに

PHPには配列のデータをCSV形式のフォーマットで書き込みをおこなう「fputcsv」という関数があります。fputcsv関数を使うことで簡単にCSVファイルを出力できます。

本記事では、fputcsv関数を使ったCSVファイルを出力する方法を紹介します。

fputcsv関数でCSVファイルを出力する

fputcsv関数でCSVファイルを出力するには、fopen関数でファイルをオープンし、fputcsv関数で1行ずつ配列のデータをCSVファイルに書き込み、最後にfclose関数でオープンしたファイルを閉じます。

open関数でファイルをオープンするときの第2引数には「モード」を指定します。今回はCSVファイルへの書き込みなので "w" を指定しています。(ファイルがなければ新規にファイル作成し、既にファイルが存在する場合は上書き保存する)

主なモードは次のとおり。

ファイルを開くときのモード説明
r読み込み専用
w書き出し専用
a追加書き出し
既存のCSVファイルに追記する場合は "w" ではなく "a" を指定します。

fputcsv関数の使用例

それでは、実際にPHPのソースコードでfputcsv関数の使用例を紹介します。

[fputcsv関数の例]

<?php

$list = array (
    array('No', '名前', '年齢', '住所'),
    array('1', '山田一郎', '30','東京都渋谷区'),
    array('2', '佐藤二郎', '25','大阪府大阪市'),
    array('3', '鈴木三郎', '22','神奈川県横浜市'),
    array('4', '高橋四郎', '18','北海道札幌市'),
    array('5', '斉藤五郎', '16','愛知県名古屋市')
);

// ファイルを開く
$fp = fopen('C:\tmp\file.csv', 'w');

// 1行ずつ配列の内容をファイルに書き込む
foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

// ファイルを閉じる
fclose($fp);

?>

出力されたCSVファイルの内容は次のとおり。

[file.csv]

No,名前,年齢,住所
1,山田一郎,30,東京都渋谷区
2,佐藤二郎,25,大阪府大阪市
3,鈴木三郎,22,神奈川県横浜市
4,高橋四郎,18,北海道札幌市
5,斉藤五郎,16,愛知県名古屋市
fputcsv関数を使うことで、配列の内容を簡単にCSVファイルに書き込むことができました。

処理の流れは次のとおりです。

処理の流れ

  • fopen関数でファイルをオープン
  • fputcsv関数で配列のデータを1行ずつファイルに書き込む(CSV形式のフォーマットで書き込む)
  • fclose関数でオープンしたファイルを閉じる

helpful