検索

キーワード


【PHP】ファイル操作について(CSVファイルの読込・出力)

  • 公開日:2020-10-16 18:03:43
  • 最終更新日:2021-02-05 17:56:54

ファイル操作(CSV)

前回はテキストファイルなどの読み書きするためのファイル操作の関数を紹介しました。

今回は主にカンマで区切られたファイルであるCSVファイルの操作について解説していきます。


CSVファイルとは

まずは簡単にCSVファイルについて説明します。

CSVとはカンマ区切り(,)で作られたファイルのことを指します。CSVファイルは互換性が高く、Excelやメモ帳、メールソフト、データベースソフトなどほとんどのソフトに取り込んで閲覧、編集することが可能です。


CSVファイルの読み込みと出力

それでは、CSVファイルに記述されている内容を出力してみましょう。

まずは読み込み対象となるsample.csvを作成します。

"yamada","CEO","Osaka"
"tanaka","CTO","Chiba"
"yamakawa","developer","Tokyo"

次に、fopen関数とfgetcsv関数を使って、CSVファイルの中身を出力します。

$row = 1;

// ファイルが存在しているかチェックする
if (($handle = fopen("sample.csv", "r")) !== FALSE) {
    // 1行ずつfgetcsv()関数を使って読み込む
    while (($data = fgetcsv($handle))) {
        echo "${row}行目\n";
        $row++;
        foreach ($data as $value) {
            echo "「${value}」\n";
        }
    }
    fclose($handle);
}

出力結果は以下のようになります。

1行目
「yamada」
「CEO」
「Kyoto」
2行目
「tanaka」
「CTO」
「Chiba」
3行目
「yamakawa」
「developer」
「Tokyo」


CSVファイルへの書き込み

fputcsv関数は、行をCSVにフォーマットして、ファイルポインタに書き込みます。

// 配列の作成
$array = [
  "Windows",
  "Mac",
  "Linux"
];
 
// 書き込み対象のCSVファイルを開く
$file = fopen("sample.csv", "w");
 
// 配列をCSVファイルに書き込む
fputcsv($file, $array);
 
// 書き込み対象のファイルをクローズ
fclose($file);

上記のプログラムを実行すると、sample.csvの中身は以下のように書き込まれます。

Windows,Mac,Linux


まとめ

今回はファイル操作の中でも、CSVファイルの操作に絞って解説しました。

入力フォームの内容をCSVファイルに書き込んで、Excelで情報の閲覧・管理といった業務はよく行われるので、CSVへのデータ書き込みや読み込みの方法はしっかり覚えておきましょう!


【著者】

當山

主にPHPでのフレームワーク開発やWebアプリの開発に携わってきました。 得意分野はHTML5とCSSによるフロントエンド開発。

よく読まれている記事