タイトル | : あちこち手を出さなくても・・・ |
投稿日 | : 2012/03/10(Sat) 16:57 |
投稿者 | : おやじ |
> すみません、kmです。本の途中にCGI.pmというのが出てきたので、使ってみようと思います。 > > さっきまで、printでhtmlを書けばできると思っていました・・・・ printで何も問題なく出来ます。 アマチュアがプロ(仕事)のお手伝いはできませんので、これが最後です。 10分で書いたので細かいことは無視してサンプルを見てください。 ------------------------------------------------ #!/usr/bin/perl # 項目名 @item =( 'お名前', '郵便番号', '住所', 'TEL', 'E-Mail', '性別', '生年月日', '○○', 'XXXXXX', 'パスワード' ); # CSVファイル名 $csvfile = 'test.csv'; # 検索用データ(とりあえず固定で) $SeekData = "2011/5/10 14:21:00"; &data_read("$SeekData"); sub data_read{ # CSVファイル読み込み open(IN,"$csvfile") || die "Cannot file open!" . $csvfile; my @data = <IN>; close(IN); chomp @data; # 行数取得(0から) my $line = $#data; # ヘッダ出力 &header("テスト"); # タイトル行出力 print <<"_EOM_"; <table cellspacing="2" cellpadding="3" border="1"> <tr> <th>No.</th> _EOM_ foreach $i (0 .. $#item){ print "<th style=\"text-align:center;\">【$item[$i]】</th>\n"; } print "</tr>\n"; $pcount = 1; # 各行を読み出し for ($count=0; $count<=$line; $count++){ my($date,$name,$todouhuken,$adress,$tel,$email,$gender,$birth,$question,$ans,$pay) = split(/,/,"$data[$count]"); # データ一致するか?(検索用データ&読み込んだデータ) if($SeekData eq $date){ print <<"_EOM_"; <tr> <td style="text-align:right;">$pcount</td> <td>$name</td> <td>$todouhuken</td> <td>$adress</td> <td>$tel</td> <td>$email</td> <td>$gender</td> <td>$birth</td> <td>$question</td> <td>$ans</td> <td>$pay</td> </tr> _EOM_ $pcount++; } } print "</table>\n"; &footer; } sub header{ my $title = $_[0]; print "Content-type: text/html\n\n"; print <<"_EOM_"; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS"> <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> <title>$title</title> </head> <body> _EOM_ } sub footer{ print <<"_EOM_"; </body> </html> _EOM_ }