目次

ファイルを読んで表をつくるの別解

(1)phpプログラムはhtml中に分断されていてもよい

ファイルを読んで表をつくるの別解です。

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>

(2)項目の順序を変更しないのなら

読み込むファイルの項目をそのまま表にするのなら、もっと簡単にできます。項目の数が変わってもプログラムはそのままで良いという所が特徴です。

番号姓名性別みょうじなまえ
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>

(3)ファイルの読み方の別のやり方

ファイルを一括して配列の中に読み込んでしまい、改行コードで 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>