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

ファイルを読んで表へ

データは tbltxt.txt という名前のファイルに保存されています。PHPでこれを読んでtableにします。

その内容は以下の通り。項目の間はタブで区切られています。

番号	姓	名	性別	みょうじ	なまえ
01	千葉	早織	女	ちば	さおり
02	對馬	奈那	女	つしま	なな
03	諏訪	真以子	女	すわ	まいこ
04	須藤	愛子	女	すとう	あいこ
05	横澤	真由美	女	よこさわ	まゆみ
06	赤石	魅音	女	あかいし	みお
07	三浦	大樹	男	みうら	だいき
08	住吉	亜希	女	すみよし	あき
09	井澤	麻美	女	いざわ	あさみ
10	齋藤	梨花	女	さいとう	りか
11	中田	裕也	男	なかた	ゆうや
12	荒川	諭子	女	あらかわ	さとこ
13	工藤	亜紗美	女	くどう	あさみ
14	福澤	静香	女	ふくさわ	しずか
15	齋藤	春人	男	さいとう	はると
16	山中	裕美	女	やまなか	ひろみ
17	花田	季恵	女	はなた	きえ
18	細貝	聖香	女	くりがた	せいか
19	田中	翠	女	たなか	みどり
20	浅利	麻希	女	あさり	あさき
21	松木	友子	女	まつき	ともこ
22	齋藤	啓太	男	さいとう	けいた

以下はPHPで読んだもの。罫線などのスタイルはあらかじめ書いてあります。

番号性別みょうじなまえ
01千葉早織ちばさおり
02對馬奈那つしまなな
03諏訪真以子すわまいこ
04須藤愛子すとうあいこ
05横澤真由美よこさわまゆみ
06赤石魅音あかいしみお
07三浦大樹みうらだいき
08住吉亜希すみよしあき
09井澤麻美いざわあさみ
10齋藤梨花さいとうりか
11中田裕也なかたゆうや
12荒川諭子あらかわさとこ
13工藤亜紗美くどうあさみ
14福澤静香ふくさわしずか
15齋藤春人さいとうはると
16山中裕美やまなかひろみ
17花田季恵はなたきえ
18細貝聖香くりがたせいか
19田中たなかみどり
20浅利麻希あさりあさき
21松木友子まつきともこ
22齋藤啓太さいとうけいた

そのプログラムがこれ。<table></table>はそのまま書き、その間に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);
        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";
    }
}
fclose($fp);
?>
</table>
$fp = fopen("tbltxt.txt","r");
tbltxt.txt を 読み込み用(read)に開きます。今後、$fpに対して1行読み込み(fgets($fp))や、閉じる(fclose($fp))を指示していきます。
while(!feof($fp)){ }
eofは end_of_file のことで、ファイルの終わりまで繰り返すということです。
trim($line) != null
trimは文字列から前後のスペースや改行文字を取り除きます。
改行だけの行を無視するために使っています。
explode("\t",$line)
$lineをタブの位置で複数の文字列に切り分けます。
list($no,$sei,$mei,$seib,$ysei,$ymei)
切り分けた文字列をlist()内の変数に順番に代入します。

課題

上記のように別ファイルからデータを読み表を作るページを作りなさい。

データファイル tbltxt.txt は自分で作成してもいいですが、ダウンロードもできます。

tbltxt.txtのリンクを右クリックして出てくるメニューから「名前をつけてリンク先を保存」を選ぶことで、.html や .php ファイルを入れるフォルダにダウンロードしておきましょう。

phpのページファイルは yomu.php という名前で保存します。index.htmlに「phpで表」という名前の リンクを作ります。