PHP

PHPでCSVファイルを読み込む方法

2021年8月5日

はじめに

PHPでは、CSVファイルの内容を読み込んで配列に格納してくれる「fgetcsv」という関数があります。fgetcsv関数を使うことで簡単にCSVファイルを読み込めます

本記事では、fgetcsv関数を使ったCSVファイルを読み込む方法について紹介しています。

読み込むCSVファイルの内容は次のとおり。

[sample.csv]

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

スポンサーリンク

CSVファイルの読み込み(fgetcsv)

fgetcsv関数でCSVファイルを読み込むには、fopen関数でファイルをオープンし、fgetcsv関数でCSVファイルの内容を読み込む、そして最後にfclose関数でオープンしたファイルを閉じます。

open関数でファイルをオープンするときの第2引数には「モード」を指定します。今回はCSVファイルの読み込みなので "r" を指定しています。

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

ファイルを開くときのモード説明
r読み込み専用
w書き出し専用
a追加書き出し

fgetcsv関数の例

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

[fgetcsvの使用例]

<?php

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

// 1行ずつ読み込む
while($line = fgetcsv($fp)){
    var_dump($line);
    echo "<br />";
}

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

?>

[実行結果]

array(4) { [0]=> string(2) "No" [1]=> string(6) "名前" [2]=> string(6) "年齢" [3]=> string(6) "住所" }
array(4) { [0]=> string(1) "1" [1]=> string(12) "山田一郎" [2]=> string(2) "30" [3]=> string(18) "東京都渋谷区" }
array(4) { [0]=> string(1) "2" [1]=> string(12) "佐藤二郎" [2]=> string(2) "25" [3]=> string(18) "大阪府大阪市" }
array(4) { [0]=> string(1) "3" [1]=> string(12) "鈴木三郎" [2]=> string(2) "22" [3]=> string(21) "神奈川県横浜市" }
array(4) { [0]=> string(1) "4" [1]=> string(12) "高橋四郎" [2]=> string(2) "18" [3]=> string(18) "北海道札幌市" }
array(4) { [0]=> string(1) "5" [1]=> string(12) "斉藤五郎" [2]=> string(2) "16" [3]=> string(21) "愛知県名古屋市" }
fgetcsv関数を使用することで、簡単に配列に格納できました。

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

処理の流れ

  • fopen関数でファイルをオープン
  • fgetcsv関数で1行ずつファイルを読み込む ※while文で読み込むデータがなくなるまで繰り返す
  • var_dump関数で読み込んだ内容(配列に格納されたデータ)を出力する
  • fclose関数でオープンしたファイルを閉じる

helpful