- ベストアンサー
TABを表示させる方法
以前のテキストファイルのhtmlタグ<>を文字として表示されるに続いての質問ですが、 #!/usr/bin/perl main:{ $file = 'use1.txt'; print "Content-type: text/html\n\n"; print "<HTML><BODY>\n"; print "<TITLE>表\示</TITLE>\n"; open( FH, $file) or die "Can't open"; foreach( <FH> ){ $_ =~ s/</</g; $_ =~ s/>/>/g; print $_ ."<br>"; } close(FH); print "</BODY></HTML>\n"; } 表示するのにTABが抜けて、全て左詰めという感じになります。 TABを表示させるにはどうしたら宜しいのでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ファイルからテキストを読み込む部分の前後を<pre>タグで 囲むとタブもブラウザ上にそのまま表示されます。 ただし改行やスペースなどもそのまま表示されてしまうので注意してください。
その他の回答 (2)
- mekerock
- ベストアンサー率64% (9/14)
#2です #1さんの方法で、解決されたのでしたら、良いのですが、ブラウザによってはpreで括られた <br>改行 が、2行の改行となり、見にくくならないかな、と思い、タブを半角スペースに変換する方法を提示したつもりでした。 が、ごめんなさい。スペル、間違えました。 &npsp; ではなく、 です。 一応、念のために書くと、 はHTMLの半角スペースの特殊コードです。 さらに念のため書きますが、セミコロンは必須です。 あと、タブを表示したいところは open~close間で 展開するテキストだけですよね? 質問時のソースと違うので、確認ですが… #2の返信で頂いた内容はあるソースをHTML上に展開したい、と解釈しましたが、上記の修正をすれば、 &npsp が (x4 など、タブ一個に対するスペース量) となることで、HTML上は半角スペースによるインデントがされるはずです。
お礼
その方法で試してみたところきちんと反映されました。 まだ知識不足のためいろいろなやり方を目にして Perllの勉強になりとてもありがたく思っています。 どうもありがとうございます。
- mekerock
- ベストアンサー率64% (9/14)
$tab = "&npsp;" x 4;#数字はタブに変換したいスペースの数だけ指定 s/\t/$tab/g; がスマートでは?
お礼
九九のソースを表示させて見ましたが #!/usr/bin/perl main:{ &npspprint "Content-type: text/html\n\n"; &npspprint "<HTML><BODY>\n"; &npspprint "<TITLE>九九</TITLE>\n"; &npspprint "<TABLE ALIGN=CENTER BORDER=1>\n"; &npspfor ($i = 1; $i <= 9; $i++) { &npsp&npspprint "<TR>"; &npsp&npspfor ($j = 1; $j <= 9; $j++) { &npsp&npsp&npsp$siki = "$i * $j= "; &npsp&npsp&npsp$ans = $i * $j; &npsp&npsp&npspprint "<TD>$siki$ans</TD>"; &npsp&npsp} &npsp&npspprint "</TR>\n"; &npsp} &npspprint "</TABLE>\n"; &npspprint "</BODY></HTML>\n"; } こんな風になってしまいました。 下記の記事で解決していますがこれはどうゆうとき使用されるのでしょうか?
お礼
返事が遅くなってごめんなさい。 無事ブラウザでTabが表示されて思ったようになりました。 ありがとう御座いました。