• ベストアンサー

HTML::Templateの空行について

HTML::Templateを利用しています。 テンプレート側で<TMPL_IF>を使用すると、不要な改行が入ってしまい、困っています。 ■テンプレートサンプル---------------------------- <div> あああああああああああ </div> <TMPL_IF NAME="PATERN_A"> 出力パターン1<br> <TMPL_ELSE> 出力パターン2<br> </TMPL_IF> <TMPL_IF NAME="PATERN_B"> 出力パターン3<br> <TMPL_ELSE> 出力パターン4<br> </TMPL_IF> <div> いいいいい </div> ■出力結果---------------------------- <div> あああああああああああ </div>                    ←空行 出力パターン2<br>                    ←空行                    ←空行 出力パターン3<br>                    ←空行 <div> いいいいい </div> 実害はないのですが、この空行をなくすことはできないでしょうか。

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

  • ベストアンサー
  • bgbg
  • ベストアンサー率53% (94/175)
回答No.2

outputした後に空行だけを削除すればいいのではないでしょうか。 $html = $template->output; $html =~ s/\n\n/\n/g; print $html; ドキュメント全体で一律空行が削除されますが、<pre>などを使っている場合以外は特に問題はないはずです。

yasagure-kun
質問者

お礼

ああ。なるほど。 その手がありますね。 何とか解決しそうな気がします。 ありがとうございました。

その他の回答 (2)

回答No.3

bgbgさん、あるんですよ・・・ <textarea></textarea>の間に、空白行を含む文字列がある場合ですが・・・ これが致命的だった事があったりして・・・ 確かに普通は気にすることは無いと思います。

yasagure-kun
質問者

お礼

逆に言えば、<textarea></textarea>がある場合に気をつければ良い ということですよね。 うまくいきそうな気がしてみました。 ありがとうございます。

回答No.1

気に入らないとは思いますが・・・ <div> あああああああああああ </div> <TMPL_IF NAME="PATERN_A">出力パターン1<br><TMPL_ELSE>出力パターン2<br></TMPL_IF> <TMPL_IF NAME="PATERN_B">出力パターン3<br><TMPL_ELSE>出力パターン4<br></TMPL_IF> <div> いいいいい </div> ではどうでしょうか。 まあ、いろんなホームページで、「表示」「ソース」で見ると、すごい空白があるページが沢山ありますから、開発者も閲覧者も見えない改行くらい多めに見てあげても良いんじゃないでしょうか・・・ p.s. でも思わぬ影響があるのが携帯版ページで、たいしたデータ量でないはずなのに、表示が遅かったり、エラーになったりする場合が・・・

yasagure-kun
質問者

お礼

返信が遅れまして申し訳ありません。 そうですよねー。 それしかないですよねー。 多めに見て欲しいですよねー。 クライアントからSEO上に不利になるから何とかしろというお達しが でまして。 個人的には、SEO上の影響は大してないと考えているのですが、 明確な反論資料もないもので、弱ってます。 ありがとうございました。

関連するQ&A