ファイルを読んで表をつくるの別解です。
tbltxt.txt の最初だけをもう一度掲載。
番号 姓 名 性別 みょうじ なまえ 01 千葉 早織 女 ちば さおり 02 對馬 奈那 女 つしま なな .........................
読んだものがこれ。これも最初だけを表示している。
番号 | 姓 | 名 | 性別 | みょうじ | なまえ |
01 | 千葉 | 早織 | 女 | ちば | さおり |
02 | 對馬 | 奈那 | 女 | つしま | なな |
03 | 諏訪 | 真以子 | 女 | すわ | まいこ |
.. | .... | .... | ... | .... | .... |
そのプログラムがこれ。PHPプログラムが分断されているが、これでもちゃんと働く。
<table> <?php $fp = fopen("tbltxt.txt","r"); while(!feof($fp)){ $line = fgets($fp); if (trim($line) != null){ list($no,$sei,$mei,$seib,$ysei,$ymei) = explode("\t",$line); ?> <tr> <td><?php print $no ?></td> <td><?php print $sei ?></td> <td><?php print $mei ?></td> <td><?php print $seib ?></td> <td><?php print $ysei ?></td> <td><?php print $ymei ?></td> </tr> <?php } } fclose($fp); ?> </table>
PHPの書き方の自由度はかなり高い。
次の部分は
<td><?php print $no ?></td>
下のように書いてもよいし
<td> <?php print $no ?> </td>
さらに下のように書いてもよい。
<td> <?php print $no ?> </td>
読み込むファイルの項目をそのまま表にするのなら、もっと簡単にできます。項目の数が変わってもプログラムはそのままで良いという所が特徴です。
番号 | 姓 | 名 | 性別 | みょうじ | なまえ |
01 | 千葉 | 早織 | 女 | ちば | さおり |
02 | 對馬 | 奈那 | 女 | つしま | なな |
03 | 諏訪 | 真以子 | 女 | すわ | まいこ |
.. | .... | .... | ... | .... | .... |
<table> <?php $fp = fopen("tbltxt.txt","r"); $ct=0; while(!feof($fp) and 4>$ct){ $line = fgets($fp); if (trim($line) != null){ $myarray = explode("\t",$line); print "<tr>\n"; foreach($myarray as $substr) { print "<td>$substr</td>"; } print "<tr>\n"; } } fclose($fp); ?> </table>
ファイルを一括して配列の中に読み込んでしまい、改行コードで explode する荒業です。
番号 | 姓 | 名 | 性別 | みょうじ | なまえ |
01 | 千葉 | 早織 | 女 | ちば | さおり |
02 | 對馬 | 奈那 | 女 | つしま | なな |
03 | 諏訪 | 真以子 | 女 | すわ | まいこ |
04 | 須藤 | 愛子 | 女 | すとう | あいこ |
.. | .... | .... | ... | .... | .... |
<table> <?php $wholefile = file_get_contents("tbltxt.txt"); $lines = explode("\n", $wholefile); foreach($lines as $line) { list($no,$sei,$mei,$seib,$ysei,$ymei) = explode("\t",$line); print "<tr>\n"; print "<td>$no</td><td>$sei</td><td>$mei</td>"; print "<td>$seib</td><td>$ysei</td><td>$ymei</td>\n"; print "</tr>\n"; } ?> </table>