アプリ版:「スタンプのみでお礼する」機能のリリースについて

ファイル読み込み後、内容表示するプログラムをつくったのですが、tsvファイルを読み込むとWEB画面には何も表示されず真っ白になってしまいます(普通のtxtファイルでもタブが入っていると表示しません)。tsv読み込み時は何か設定が必要なのでしょうか?

#!/usr/local/bin/perl

print "Content-Type: text/html\n\n";
print "<html>\n";
print "<head><title>サンプル</title></head>\n";
print "<body>\n";

if (open(FH, "data/block.txt")) {
@file = <FH>;
close(FH);

print "<p>ファイルの内容は、<br>\n";
foreach $data (@file) {
print "$data<br>";
}
print "です。</p>\n";
} else {
print "ファイルを読み込めません。";
}

print "</body>\n";
print "</html>\n";

exit;

A 回答 (1件)

(Perl の質問ではなくて HTML の質問だと思いますが…)。



何も表示されないのはそのファイルの中に '<' か '>' の記号が入っているからではないですか? もし入っているならそれを &lt; や &gt; に変換しなければちゃんと出ません。(但し <pr> ... </pr> で括った場合は出ることがあります。ブラウザ依存だと思いますが)。

そのプログラムを改造するとすると

foreach $data (@file) {
print "$data<br>";
}

の所を

foreach $data (@file) {
$data =~ s/</&lt;/g;
$data =~ s/>/&gt;/g;
print "$data<br>";
}

のようにすればできます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!