• ベストアンサー

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を表示させるにはどうしたら宜しいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ファイルからテキストを読み込む部分の前後を<pre>タグで 囲むとタブもブラウザ上にそのまま表示されます。 ただし改行やスペースなどもそのまま表示されてしまうので注意してください。

crazy_jazz
質問者

お礼

返事が遅くなってごめんなさい。 無事ブラウザでTabが表示されて思ったようになりました。 ありがとう御座いました。

その他の回答 (2)

  • mekerock
  • ベストアンサー率64% (9/14)
回答No.3

#2です #1さんの方法で、解決されたのでしたら、良いのですが、ブラウザによってはpreで括られた <br>改行 が、2行の改行となり、見にくくならないかな、と思い、タブを半角スペースに変換する方法を提示したつもりでした。 が、ごめんなさい。スペル、間違えました。 &npsp; ではなく、 &nbsp; です。 一応、念のために書くと、 &nbsp; はHTMLの半角スペースの特殊コードです。 さらに念のため書きますが、セミコロンは必須です。 あと、タブを表示したいところは open~close間で 展開するテキストだけですよね? 質問時のソースと違うので、確認ですが… #2の返信で頂いた内容はあるソースをHTML上に展開したい、と解釈しましたが、上記の修正をすれば、 &npsp が &nbsp;(x4 など、タブ一個に対するスペース量) となることで、HTML上は半角スペースによるインデントがされるはずです。

crazy_jazz
質問者

お礼

その方法で試してみたところきちんと反映されました。 まだ知識不足のためいろいろなやり方を目にして Perllの勉強になりとてもありがたく思っています。 どうもありがとうございます。

  • mekerock
  • ベストアンサー率64% (9/14)
回答No.2

$tab = "&npsp;" x 4;#数字はタブに変換したいスペースの数だけ指定 s/\t/$tab/g; がスマートでは?

crazy_jazz
質問者

お礼

九九のソースを表示させて見ましたが #!/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"; } こんな風になってしまいました。 下記の記事で解決していますがこれはどうゆうとき使用されるのでしょうか?

関連するQ&A

専門家に質問してみよう