PHPでCSV読み込み!
Updated:
※この記事は16年以上前に投稿されたもので、情報が古い可能性があります。
今日はWebサーバ上にあるCSVファイルを読み込んで表示させるということをしました。
実際にはロト6の当選データで試しました。
以下がソースサンプルです。
<?php
// CSVファイルの読み込み
// ドキュメントルートの「docs/LOTO/」フォルダに「LOTO6_ALL.csv」という名前のCSVファイルを置いている場合
$openfile = file_get_contents('docs/LOTO/LOTO6_ALL.csv');
// ここで1行ずつ分けている
$csv_gyo = split("\n", $openfile);// ここで1行ずつ分けている
echo "<table>";// 1行ずつ読み込みながらのループ処理
foreach($csv_gyo as $kurikaeshi) {
// ここでカンマごとに分けている
list($No,$抽選日,$数字1,$数字2,$数字3,$数字4,$数字5,$数字6,$数字B,$1等口数,$2等口数,$3等口数,$4等口数,$5等口数,$1等金額,$2等金額,$3等金額,$4等金額,$5等金額,$キャリーオーバー) = split(",", $kurikaeshi);
// HTMLソースの出力
echo "<tbody><tr>";
echo "<td>".$No."</td>";
echo "<td>".$抽選日."</td>";
echo "<td>".$数字1."</td>";
echo "<td>".$数字2."</td>";
echo "<td>".$数字3."</td>";
echo "<td>".$数字4."</td>";
echo "<td>".$数字5."</td>";
echo "<td>".$数字6."</td>";
echo "<td>".$数字B."</td>";
echo "<td>".$1等口数."</td>";
echo "<td>".$2等口数."</td>";
echo "<td>".$3等口数."</td>";
echo "<td>".$4等口数."</td>";
echo "<td>".$5等口数."</td>";
echo "<td>".$1等金額."</td>";
echo "<td>".$2等金額."</td>";
echo "<td>".$3等金額."</td>";
echo "<td>".$4等金額."</td>";
echo "<td>".$5等金額."</td>";
echo "<td>".$キャリーオーバー."</td>";
echo "</tr>";
}
echo "</tbody></table>";
?>
基本的なコーディングは上記でいいんですが、 このままではこんな↓↓↓↓感じで体裁が悪いので、
さらにソースを以下のように修正し、CSSでデザインを設定しました。
``` php
//読み込み行数
$lineno = 0;
// CSVファイルの読み込み
$openfile = file_get_contents('docs/LOTO/LOTO6_ALL.csv');
// ここで1行ずつ分けている
$csv_gyo = split("\n", $openfile);
echo "
";
// 1行ずつ読み込みながらのループ処理
foreach($csv_gyo as $kurikaeshi) {
// ここでカンマごとに分けている
list($No,$抽選日,$数字1,$数字2,$数字3,$数字4,$数字5,$数字6,$数字B,$1等口数,$2等口数,$3等口数,$4等口数,$5等口数,$1等金額,$2等金額,$3等金額,$4等金額,$5等金額,$キャリーオーバー) = split(",", $kurikaeshi);
// 読み込み行数カウントアップ
$lineno++;
// 1行目はヘッダなのでそのまま表示
if($lineno == 1) {
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
// 2行目からは数値をカンマ区切りする
} else {
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
}
}
echo "
";
?>
```
結局こんな感じに出来上がりました。
↓↓↓↓

実際の出来ばえは私の [ホームページ](http://www.mk-mode.com/rails/loto/loto6 "ホームページ") でご確認下さい。
(後日追記→)※上記のサイトは現在「 Ruby on Rails 」に移行しています。
ちなみに、
今回からソースをまんま貼り付けて表示させることのできるWordPress用のプラグイン
[Syntax Highlighter for WordPress (ソース整形表示)](http://wppluginsj.sourceforge.jp/syntax-highlighter/ "Syntax Highlighter for WordPress (ソース整形表示)")
を使いました。
では、では。
".$No." | ".$抽選日." | ".$数字1." | ".$数字2." | ".$数字3." | ".$数字4." | ".$数字5." | ".$数字6." | ".$数字B." | ".$1等口数." | ".$2等口数." | ".$3等口数." | ".$4等口数." | ".$5等口数." | ".$1等金額." | ".$2等金額." | ".$3等金額." | ".$4等金額." | ".$5等金額." | ".$キャリーオーバー." |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
".$No." | ".$抽選日." | ".$数字1." | ".$数字2." | ".$数字3." | ".$数字4." | ".$数字5." | ".$数字6." | ".$数字B." | ".number_format($1等口数)." | ".number_format($2等口数)." | ".number_format($3等口数)." | ".number_format($4等口数)." | ".number_format($5等口数)." | ".number_format($1等金額)." | ".number_format($2等金額)." | ".number_format($3等金額)." | ".number_format($4等金額)." | ".number_format($5等金額)." | ".number_format($キャリーオーバー)." |
Comments