Blog スタッフブログ

PHP

【PHP】CSVを読み取ってページに表示

Webサイト内にCSVファイルを読み取ってコンテンツを表示する方法をご紹介します。

お知らせや事例紹介など同じレイアウトで繰り返し表示させたい時に適しています。

準備

1.CSVファイルの作成

xlsxやGoogleスプレッドシートなどでcsvファイルを作成します。

作成したものをサーバーにアップロードします。

2.CSVファイルを読み込む

csvファイルを読み込んで1行ずつ表示する例です。

<?php
	// CSVファイルを読み込む
	$f = fopen("https://exmple.com/sample.csv", "r");
	// ループ回数をカウント
	$count = 0;
	//枠
	echo '<div class="post">';
	// 1行ずつ配列にする
	while($line = fgetcsv($f)) { //繰り返す
		if ($count > 0) { //csvの1行目は表示しない
			echo '<article class="'.$count.'">';
		    for ($i=0;$i<count($line);$i++) {
		    	if ($i == 0) { //A列
		    		echo '<div>';
		    		echo $line[$i];
		    		echo '</div>';
		    	}
		    	if ($i == 1) { //B列
		    		echo '<div>';
		    		echo $line[$i];
		    		echo '</div>';
		    	}
		    	if ($i == 2) { //C列
		    		echo '<div>';
		    		echo $line[$i];
		    		echo '</div>';
		    	}
		    	if ($i == 3) { //D列
		    		echo '<div>';
		    		echo $line[$i];
		    		echo '</div>';
		    	}
		    	if ($i == 4) { //E列
		    		echo '<div>';
		    		echo $line[$i];
		    		echo '</div>';
		    	}
		    }
		    echo '</article>';
		    $count++;
		}
	}
	echo '</div>';

	// CSVファイルを閉じる
	fclose($f);
?>

解説

csvのアップロード先にあわせてURLを変更します。

// CSVファイルを読み込む
$f = fopen("https://exmple.com/sample.csv", "r");

A列からE列順に0〜4の数字が割り当てられるようにしています。

一部だけhtmlタグやclassを変えて見た目変えたい時はif文で分けて記述します。

if ($i == 0) { //A列
	echo '<div>';
	echo $line[$i];
	echo '</div>';
}
if ($i == 1) { //B列
	echo '<div class="custom_class">';
	echo $line[$i];
	echo '</div>';
}