• ベストアンサー

改行を除いてHTML表示

PHP4 Smartyにてコンテンツ作成しております。 デザイン部分であるHTMLはタグ等綺麗にインデントされておりますが、最後の処理としてブラウザーに表示する際に、改行を取り除きたいのですが、どのような方法がありますか。 Smartyを用いない場合の方法でも結構です。 宜しくお願いいたします。

  • ibdij
  • お礼率49% (25/51)
  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • awazak
  • ベストアンサー率36% (61/165)
回答No.1

preg_replace を使ってできませんか? 正規表現でマッチさせて、その部分を置換する関数です。 preg_replace ("\n","",$strstrstr) 見当違いならすみません。

参考URL:
http://jp.php.net/manual/ja/function.preg-replace.php
ibdij
質問者

お礼

ありがとうございます。 smartyのアウトプットフィルターを登録する事に よって見事できました。

その他の回答 (1)

回答No.2

preg_replaceはperl互換の正規表現ですから preg_replace("/\n/","",$html); ですね。うちではタブも取っちゃってます。 preg_replace("/[\n\t]/","",$html); データ量の倹約と解析防止(大した防止策じゃないけど)のため、ですね。

ibdij
質問者

お礼

ありがとうございます。 smartyのアウトプットフィルターを登録する事に よって見事できました。

関連するQ&A

  • Smartyで出力したHTMLコードが改行されない

    PHPのテンプレートエンジンであるSmaryについて教えてください。 SmartyテンプレートをUTF-8、かつ改行コードLFで作成しました。 (テキストエディタでちゃんと上記の通りなってるかも確認) ◯◯.tplとし、Webサーバを介して描画したところ、出力結果のHTMLのソースが改行されないで出力されてしまいました。 (ブラウザでのHTML自体の描画はできているので、HTMLから改行のみ消えてHTMLがみにくい状態) なぜか<script>タグで区切ったJavascriptのコードの部分だけはちゃんと改行されています。 HTML部分も改行したいのですが、なにか設定が必要なのでしょうか。 (以前、Smarty2.x系を使ったときは出力されたHTMLは改行されていました。) 【環境】 OS:MaxOSX Lion Webサーバアプリ:ZendServerCE5.3.5 Smarty:バージョン3.1.4 テンプレート:UTF-8、改行LFで作成 以上、よろしくお願いします。

    • 締切済み
    • PHP
  • PHPで出力したHTMLのソースが汚い

    ただいまPHPを勉強中の者です。 PHPでHTMLを書き出してみたのですが、ソースが改行もインデントもされておらず非常に見にくくてなってしまいました。 改行は\n、インデントは\tを入れればよいというところまでは調べたのですが、それではphpのソースが\tだらけになってしまうのでは、、、と思っています。 みなさんがPHPでHTMLを書き出すときに効率良くきれいなHTMLソースにするために行っている方法を教えて頂きたく思います。 何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • HTMLコードの改行やタブについて

    現在、Dreamweaver+手打ちにてHTMLを作成しておりますが 作成するにつれてコード内の改行・スペース・タブなどが ずれてしまい、デザインビューのみで作成するのであれば 特に困りませんがコードビューでもコードを手打ちすることがあるので 完成するころにはとても見づらくて困っております。 (もちろんブラウザ上では何の問題もないのですが・・) 生成されたHTMLコードの改行やタブ数等を瞬時に 綺麗な状態にする事は可能でしょうか? もちろんDreamweaver以外の外部ツールを使う方法でも構いません。 ご存じの方は教えて下さい。

    • ベストアンサー
    • HTML
  • HTMLにcgiを使って表示していますが、TEXTAREAの改行ができません

    今、ホームページの作成をしています。 その際入力の画面で送信ボタンを押すと、cgiを使って入力確認の画面を 表示するようにしたいのですが、入力画面のTHML言語でTEXTAREAを使うと その後の入力確認画面で入力通の改行ができません。 入力確認画面のソースを表示すると、入力画面で指定した箇所で改行はされているようなのですが、各行の最後にHTMLLの改行タグ<BR>が表示されていません。 改行タグを各行ごとに入れられれば良いのですが、どうしてもやり方が わからないので、良いやり方があれば教えていただけませんか。 cgi上ではC言語を使い、ホームページを表示しています。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • HTMLで開いたsrcの改行コードを調べる方法を教えてください

    cgiでHTMLを作成していますが、cgiを実行した時に HTMLで改行が2個入ってしまいます。 unix上のファイルをfgetsにて1行ずつ読み込んで そのまま出力しています。 改行コードを削除したいのですが、 表示しているHTMLのsrc内にある改行コードに何(どの改行コード)が入っているのか分からず、削除できません。 (fgetsで読み込んだ1行の最後に"\0"が入っていると思って、それを削除してみたのですが、駄目でした。このやりかたは間違えていますか?正しい方法を教えてください。) 宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • 半角スペースを改行などで代用することについて

    HTMLでは改行やタブは半角スペースとして処理されるそうですが、それはHTMLとしての決まりごとであり、どのブラウザでも同じなのでしょうか? それとも最近の主要なブラウザがそういう挙動をするというだけの話なのでしょうか? 例えば以下のような場合、改行しているので2つのボタンの間には半角スペースが入りますが、半角スペースを入れたければ別の方法を取るべきなのか?という意味です。 <input type="submit" value="送信"> <input type="reset" value="リセット"> サイトをデザインする際に、半角スペースが入ることを期待して改行したりするのは邪道なのかどうかが知りたいです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • HTMLの出力で改行をさせない方法はありますか

    ASPでHTMLの一部だけASPの文法にしたい時、 <div><%= hogehoge %></div> のような感じで書くと思います。 ただ、ASPの部分が非常に長い場合にそこだけ改行したい場合が あります。 (上は変数を出力しているだけですが実際にはIf文などを使って いたりでもっと長いです) <div> <%= hogehoge %> </div> ↑だと出力されるHTMLも改行を含んでしまいます。 これをさせないようにするには <div><% = hogehoge %></div> こんな感じにするしかないのでしょうか。 これだとASPの見た目が悪いような気がするのですがどうにか ならないでしょうか。 <% %> ASPにおける↑の呼び方(正式名称)もよく分からないので (開始タグ/終了タグ?)調べようにも調べることができないでいます。 実は意外と当たり前のことだったりする可能性もありますが 何か方法があったら教えていただけると嬉しいです。

  • HTMLタグチェック

    MacromediaのDreamWeaverを使ってHTMLを生成し、 PHPの埋め込みモジュールを作成しました。 一度ブラウザでみると、テーブルがひどくズレ 見えるものじゃありません。 そこでPHP埋め込み型でもHTMLタグチェックを行えるツール又は、ブラウザのソース表示でHTMLコードを吸い取り、チェックを行う良いツールはございますか? できればとじタグはどこにいれないといけないとか よりカスタマイズされたチェッカーがいいです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • HTMLのh1タグで自動的になされる改行の防止

    すぐ下のNo.1584054の質問をしたものです。 No.1584054の質問は意味不明なので、こちらを見ていただけないでしょうか。No.1584054の質問を削除したいのですが削除方法が分からないので。(すみません!) HTMLのh1タグを使うと</h1>の次で自動的に改行されます。例えば、次のようにしたものをブラウザで見ると、「夏休み」の直後で改行されています。 <h1> 夏休み</h1>キャンプ この改行をしないようにすることはできるでしょうか。 よろしくお願いします。

  • タグの中だけ改行を除去したい

    HTMLを解析するプログラムを作成しています。 HTMLタグを正しく認識するために、下記のようにして、HTMLタグの中("<" と ">" に囲まれた範囲)の改行コードを除去するようにしました。 $html = preg_replace ("/[\t\r\n]/"," ",$html); これで一応動作するようになったのですが、HTMLタグでない文章のほうも、改行がすべてなくなってしまうので、HTMLソースが見づらくなってしまいました。 HTMLタグの中だけ置換が有効になるようにしたいのですが、良い方法はありますでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう