2010年09月20日に投稿

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

fgetcsv関数を使用してcsvファイルを読み込みます。以下のサンプルでは、CSVファイルの内容をテーブルタグで簡単に整形を行いブラウザに表示させます。

サンプルデータとして下記の内容が記録されたファイルを用意します。

data.csv
[php]
佐藤,20,東京都
山本,35,埼玉県
田中,40,大阪府
鈴木,23,兵庫県
伊東,19,奈良市
藤岡,16,愛知県
今村,55,神奈川県
北野,60,千葉県
[/php]

getcsv.php
[php]
“;

#fgetcsv関数がfalseを返却するまで実行
while($data = fgetcsv($fp)){
print “

“;

#csvファイルの列数だけ実行
for($i=0;$i“.$data[$i].”

“;
}
print “

“;
}
print “

“;
fclose($fp);
?>
[/php]

fgetcsv関数の動きとしては、1回実行するたびにCSVファイルを1行ずつ読み込むイメージです。1回実行されると、参照する行が1行下に動かされ次に実行された時には2行目、その次は3行目・・・と続きます。fgetcsv関数はファイルの最終行に到達した後はfalseを返却します。1回実行されるたびにwhileで返却値を判定することで、最終行に達したあとは処理を中止します。

CSVファイルとPHPプログラムの文字コードを合わせても、日本語が読み込まれない現象が見られました。その場合は、setlocale(LC_ALL,’ja_JP.UTF-8′);を記述することで正常に読み込むことができるようです。setlocal関数ですが、Googleで少し調べたくらいでは理解できなかったのでもう少し調査をしたいと思います。

関連記事

Leave a Reply