プログラミング PHP

【PHP入門】CSVファイルを読み込む方法

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

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

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

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関数を使用することで、配列に格納できました。処理の流れは次のとおりになります。

処理の流れ

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

fgetcsv関数を使ったCSVファイルを読み込む方法について説明しました。PHPを学習する方のお力になれれば幸いです。

PHP学習書の紹介

Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。

「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」
「このプログラムをより読みやすくするために、どんなアプローチができるだろう?」

といったことを思考しつつ、「とりあえずは動く」だけで終わらない、現場に求められる品質を形にするための知識とテクニックを解説します。

-プログラミング, PHP