PHPでCSVからテーブルを表示する方法【サンプルコード付き】

php

PHPでCSVからテーブルを表示する方法

PHPでCSVファイルを読み込み、HTMLのテーブルへ一覧表示する方法を紹介します。CSVに保存されたデータを取得して表形式で表示できるため、商品一覧、会員一覧、顧客管理などさまざまな用途に利用できます。データベースを使わずにCSVだけで一覧表示を行いたい場合に使えるサンプルコードです。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

名前 カテゴリー メールアドレス
山田 太郎 営業 taro@example.com
佐藤 花子 企画 hanako@example.com
鈴木 一郎 開発 ichiro@example.com

コードをコピーして使おう!

<?php

$rows = [];

if (file_exists('data.csv')) {

    if (($fp = fopen('data.csv', 'r')) !== false) {

        while (($row = fgetcsv($fp)) !== false) {
            $rows[] = $row;
        }

        fclose($fp);

    }

}

?>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>CSVからテーブル表示</title>

<style>

body{
    font-family:sans-serif;
    margin:20px;
}

.table-wrap{
    border:1px solid #e5e7eb;
    border-radius:20px;
    overflow:hidden;
}

table{
    width:100%;
    border-collapse:collapse;
}

th{
    background:#f7f2e5;
}

th,
td{
    padding:16px;
    text-align:left;
    border-bottom:1px solid #e5e7eb;
}

</style>

</head>
<body>

<div class="table-wrap">

    <table>

        <tr>
            <th>名前</th>
            <th>カテゴリー</th>
            <th>メールアドレス</th>
        </tr>

        <?php foreach ($rows as $row): ?>

        <tr>
            <td><?= htmlspecialchars($row[0] ?? '', ENT_QUOTES, 'UTF-8') ?></td>
            <td><?= htmlspecialchars($row[1] ?? '', ENT_QUOTES, 'UTF-8') ?></td>
            <td><?= htmlspecialchars($row[2] ?? '', ENT_QUOTES, 'UTF-8') ?></td>
        </tr>

        <?php endforeach; ?>

    </table>

</div>

</body>
</html>

ファイル構成と設置方法

このサンプルで使用するファイル構成です。
下記のファイルを同じフォルダ(同じ階層)へ配置してください。

sample/
├─ index.php
└─ data.csv

index.php と data.csv を同じフォルダへ配置してください。

data.csv に保存されているデータを PHP で読み込み、HTMLテーブルとして一覧表示します。CSVファイルの内容を変更すると、表示内容も自動的に更新されます。

このサンプルはデータの表示専用です。登録・編集・削除機能は含まれていません。

PHPはサーバー上で実行されるため、PHPファイルをダブルクリックしても動作しません。動作確認はレンタルサーバーへアップロードするか、PHPが利用できるローカル環境で行ってください。


コメント