C:blanc
投稿日
2022年07月01日
Blog PHP

超簡単!CSVファイルを読み込んでPHPで表示する

  • このエントリーをはてなブックマークに追加

はじめに

PHPでCSVファイルを読み込むには、Standard PHP LibrarySplFileObject クラスを使います。
CSVとかコンバートとか、ワクワクするのは私だけでしょうか?w
(今回はコンバートはでてきません)

使い方

使い方は簡単です。
PHPの標準クラスですので、インストールとかは必要ありません。
PHP
<?php
$file = new SplFileObject('data.csv', 'r');
$file->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY | SplFileObject::READ_AHEAD);

foreach ($file as $line) {
    echo $line[0];
    echo $line[1];
    echo $line[2];
}

定義済み定数

SplFileObject::DROP_NEW_LINE・・・行末の改行を読み飛ばします。
SplFileObject::READ_AHEAD・・・先読み/巻き戻しで読み出します。
SplFileObject::SKIP_EMPTY・・・ファイルの空行を読み飛ばします。期待通りに動作させるには、READ_AHEAD フラグを有効にしないといけません。
SplFileObject::READ_CSV・・・CSV 列として行を読み込みます。

デモ

デモとして、歴史年表を作ってみました。
そのうち、他の時代も作ってみたいです。
https://history.c-blanc.com/
data.csv
1868,慶応,4,"戊辰戦争"
1869,明治,2,"↓"
1870,明治,3,""
1871,明治,4,"廃藩置県"
1872,明治,5,""
1873,明治,6,""
1874,明治,7,""
1875,明治,8,"樺太・千島交換条約
...

終わりに

データーベースにする程ではないデータの場合、使えるんじゃないでしょうか。
必要に応じて、nl2br で改行処理をしたり、htmlspecialchars でエスケープ処理を行います。

出来事が空欄の行をスキップする処理も入れてもいいかもしれません。
全部埋めても良いのですが、何か有名な出来事ありますか?
個人的には、「明治21年 香川県が愛媛県より独立」が興味深いのですが・・・

PROFILE

C:blanc
フリーランスのプログラマーです。

RECOMMEND

この記事を読んだ人は、こちらの記事も読んでいます。

  • COMMENT

    送信しました! コメントは承認後表示されます!
  • あと150文字