小金井にあるWEB制作会社の備忘録

MEMORANDUM

PHP「fgetcsv」を使ってCSVファイルを読み込み表示する

データベースに一括保存する際や、データベースを使わないで簡易的にリストを読み込みで一覧表示をする際にCSVファイルを使用する機会が多くあります。
今回はPHPでのCSV読み込み処理を行った時の対処方法をメモ

PHP

$fp = fopen('○○○○.csv', 'r');

while($line = fgetcsv($fp)) {
	foreach($line as $val){
		echo ($val.'<br>');
	}
}

fclose($fp);

「fopen」で該当するCSVファイルを読み込み、「fgetcsv」で配列に収納。
「while」で「行」を「foreach」で「列」を取得して表示。

上記はCSVに記載されてる全ての値を表示する場合。
部分的に表示したい場合は下記も参照。

PHP

//特定の列のみ一覧表示(2列目と4列目)
while($line = fgetcsv($fp)) {
	echo($line[1].$line[3].'<br>');
}

//特定の行のみ表示(1,3,5行目)
$i = 1; //行番号の設定
$active = '/1|3|5/'; //対象番号の設定
while($line = fgetcsv($fp)) {
	if(preg_match($active, $i)){
		foreach($line as $val){
			echo ($val.'<br>');
		}
	}
	$i++;
}

//配列に入れて表示(3行目の3列目のみ)
$i = 1;
while($line = fgetcsv($fp)) {
	
	$dataary[$i] = $line;
	$i++;
}

echo($dataary[3][2].'<br>');

数字の箇所はいずれも行番号と列番号。
行は「$i」で上から「1行目」から、列は左から「0列目」から始まる

同一カテゴリーの記事