超簡単!CSVファイルを読み込んでPHPで表示する
はじめに
PHPでCSVファイルを読み込むには、Standard PHP Library の SplFileObject クラスを使います。
CSVとかコンバートとか、ワクワクするのは私だけでしょうか?w
(今回はコンバートはでてきません)
CSVとかコンバートとか、ワクワクするのは私だけでしょうか?w
(今回はコンバートはでてきません)
使い方
使い方は簡単です。
PHPの標準クラスですので、インストールとかは必要ありません。
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 列として行を読み込みます。
SplFileObject::READ_AHEAD・・・先読み/巻き戻しで読み出します。
SplFileObject::SKIP_EMPTY・・・ファイルの空行を読み飛ばします。期待通りに動作させるには、READ_AHEAD フラグを有効にしないといけません。
SplFileObject::READ_CSV・・・CSV 列として行を読み込みます。
デモ
data.csv
1868,慶応,4,"戊辰戦争"
1869,明治,2,"↓"
1870,明治,3,""
1871,明治,4,"廃藩置県"
1872,明治,5,""
1873,明治,6,""
1874,明治,7,""
1875,明治,8,"樺太・千島交換条約
...
終わりに
データーベースにする程ではないデータの場合、使えるんじゃないでしょうか。
必要に応じて、nl2br で改行処理をしたり、htmlspecialchars でエスケープ処理を行います。
出来事が空欄の行をスキップする処理も入れてもいいかもしれません。
全部埋めても良いのですが、何か有名な出来事ありますか?
個人的には、「明治21年 香川県が愛媛県より独立」が興味深いのですが・・・
必要に応じて、nl2br で改行処理をしたり、htmlspecialchars でエスケープ処理を行います。
出来事が空欄の行をスキップする処理も入れてもいいかもしれません。
全部埋めても良いのですが、何か有名な出来事ありますか?
個人的には、「明治21年 香川県が愛媛県より独立」が興味深いのですが・・・
PROFILE
- C:blanc
- フリーランスのプログラマーです。
COMMENT
送信しました! コメントは承認後表示されます!