可変の表の出力 |
HTMLテンプレートファイルには、CGIで展開する表の部分を通常の文章では使われないような、もちろんHTMLタグなどにも使われない特別なルールで書いておきます。ここでは展開する部分を
__@表@__
とすることにします。例えば、次のようなHTMLのテンプレートを定義します。
<HTML> <HEAD> <TITLE>可変の表を出力</TITLE> </HEAD> <BODY> <TABLE> _@Table@__ </TABLE> </BODY> </HTML> |
CGIでは、__@Table@__を置き換えます。
#!/usr/bin/perl # # table_template.cgi # # (C) Kaoru Fujita # use lib './lib'; require 'util.pl'; # # 定数 # $TmplLoc = './templates'; $Template = $TmplLoc.'/table_html.tmpl'; $TblName = 'Table'; open(FH, "<$Template") or exitError("テンプレートファイルがオープンできません: $Template"); print "Content-Type: text/html\n\n"; # テーブルの作成 $g = 0x00; for ($r=0x00; $r <= 0xff; $r+=0x10) { $table = $table.'<TR>'; for ($b=0x00; $b <= 0xff; $b+=0x10) { $g = $b if ($r == $b); $rgb = sprintf("%02x%02x%02x", $r, $g, $b); $table = $table.'<TD BGCOLOR="#'.$rgb.'"> </TD>'; } $table = $table."</TR>\n"; } while (<FH>) { s/__\@$TblName\@__/$table/g; print; } exit(0); #--End of table_template.cgi |