mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

PHPでCSV読み込み!

[ webサイト, サーバ構築, ブログ ] [ PHP ]

こんばんは。

今日はWebサーバ上にあるCSVファイルを読み込んで表示させるということをしました。

実際にはロト6の当選データで試しました。

以下がソースサンプルです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?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>";

?>

基本的なコーディングは上記でいいんですが、 このままではこんな↓↓↓↓感じで体裁が悪いので、

php_csv_read_1

さらにソースを以下のように修正し、CSSでデザインを設定しました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<div class="loto_data">

//読み込み行数
$lineno = 0;
// CSVファイルの読み込み
$openfile = file_get_contents('docs/LOTO/LOTO6_ALL.csv');
// ここで1行ずつ分けている
$csv_gyo = split("\n", $openfile);
echo "
<table class="\">";
// 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 "
<tbody>
<tr>";
echo "
<th class="\">".$No."</th>
";
echo "
<th class="\">".$抽選日."</th>
";
echo "
<th class="\">".$数字1."</th>
";
echo "
<th class="\">".$数字2."</th>
";
echo "
<th class="\">".$数字3."</th>
";
echo "
<th class="\">".$数字4."</th>
";
echo "
<th class="\">".$数字5."</th>
";
echo "
<th class="\">".$数字6."</th>
";
echo "
<th class="\">".$数字B."</th>
";
echo "
<th class="\">".$1等口数."</th>
";
echo "
<th class="\">".$2等口数."</th>
";
echo "
<th class="\">".$3等口数."</th>
";
echo "
<th class="\">".$4等口数."</th>
";
echo "
<th class="\">".$5等口数."</th>
";
echo "
<th class="\">".$1等金額."</th>
";
echo "
<th class="\">".$2等金額."</th>
";
echo "
<th class="\">".$3等金額."</th>
";
echo "
<th class="\">".$4等金額."</th>
";
echo "
<th class="\">".$5等金額."</th>
";
echo "
<th class="\">".$キャリーオーバー."</th>
";
echo "</tr>
";
// 2行目からは数値をカンマ区切りする
} else {
echo "
<tr>";
echo "
<td class="\">".$No."</td>
";
echo "
<td class="\">".$抽選日."</td>
";
echo "
<td class="\">".$数字1."</td>
";
echo "
<td class="\">".$数字2."</td>
";
echo "
<td class="\">".$数字3."</td>
";
echo "
<td class="\">".$数字4."</td>
";
echo "
<td class="\">".$数字5."</td>
";
echo "
<td class="\">".$数字6."</td>
";
echo "
<td class="\">".$数字B."</td>
";
echo "
<td class="\">".number_format($1等口数)."</td>
";
echo "
<td class="\">".number_format($2等口数)."</td>
";
echo "
<td class="\">".number_format($3等口数)."</td>
";
echo "
<td class="\">".number_format($4等口数)."</td>
";
echo "
<td class="\">".number_format($5等口数)."</td>
";
echo "
<td class="\">".number_format($1等金額)."</td>
";
echo "
<td class="\">".number_format($2等金額)."</td>
";
echo "
<td class="\">".number_format($3等金額)."</td>
";
echo "
<td class="\">".number_format($4等金額)."</td>
";
echo "
<td class="\">".number_format($5等金額)."</td>
";
echo "
<td class="\">".number_format($キャリーオーバー)."</td>
";
echo "</tr>
";
}
}
echo "</tbody>
</table>
";
?>
</div>

結局こんな感じに出来上がりました。 ↓↓↓↓ php_csv_read_2

実際の出来ばえは私の ホームページ でご確認下さい。 (後日追記→)※上記のサイトは現在「 Ruby on Rails 」に移行しています。

ちなみに、 今回からソースをまんま貼り付けて表示させることのできるWordPress用のプラグイン Syntax Highlighter for WordPress (ソース整形表示) を使いました。

では、では。

Comments