- ベストアンサー
phpでtabを空白に変換して表示する方法
- $str = <<< DOC_END01 <script language="JavaScript"> function changeText01(){ __$("#about01").html("表示テスト"); } </script> DOC_END01; echo nl2br(htmlspecialchars($str)); で、javascriptを表示するとき このままだと、tab 上記「_」が削除されてしまいます。
- tabを空白などに変換して表示するにはどうしたらよいのでしょうか。
- echo nl2br(htmlspecialchars(ereg_replace('/\t/', ' ',$str))); echo nl2br(htmlspecialchars(str_replace('\t', ' '$str)))); などとしてもだめでした。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
削除はされないと思います ただHTMLではタブ、スペース、改行は表示されないですね htmlspecialcharsした後に に変換したらどうでしょう
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10361)
他の方の回答と同じですが、ブラウザで「ソースを見る」だと、タブがあるはずです。 そのタブがブラウザ画面上で期待通りに表示されていないとしたら、「これこれこういう表示にしたいが、どういうHTMLを書いたらいいか」というHTMLの問題になります。 <pre> ~ </pre> で囲むのが簡単か。
お礼
notnotさん、今日は。 早速アドバイスありがとうございます。 ><pre> ~ </pre> で囲むのが簡単か。 その通りでした。 思いつきませんでした。 tabの文字数が、半角8文字となってしまいますが。 どうもありがとうございました。
- honoka-cha
- ベストアンサー率54% (40/73)
質問の意図がはっきりしているようにみえて実はあいまいという、特殊な質問に感じました。 ぱっと見、この質問にある現象は何も問題ないように見えます。 一般に、連続する空白文字(半角スペースやタブ、改行文字など)は、ブラウザで見ると空白1つに見えます。 テキストエディタで見れば、省略されずそのまま見えます。 また、上記__は、ブラウザで見れば表示されません。 テキストエディタで見れば表示されます。 もしかしてブラウザで見たとき"表示テスト"の前にいくらかスペースがほしいということでしょうか。 そうであればスタイルシートを使ったほうが良いでしょう。margin-leftとか。 そこで確認なのですが、何が問題なのでしょう。具体的に何に困っているんでしょう。 細かいこと突っつくようですが、どうしてトラブルを抱えていると思ったのでしょうか。 そこをはっきりさせましょう。そのほうが解決にしっかりと近づいていけると思います。
お礼
honoka-chaさん、今日は。 どうもアドバイスありがとうございます。 >何が問題なのでしょう。 javascriptをテキストエディタで編集してそのスクリプトを実行すると同時に、テキストエディタで編集しているイメージ通り段下げをしてブラウザで表示しようと思いました。 その、表示の方が思うようにいかなくて質問をさせていただきました。
お礼
php504さん、今日は。 早速レスありがとうございます。 >削除はされないと思います この指摘をたよりに更に色々と試してみました。 echo str_replace("\t", ' ',nl2br(htmlspecialchars($str))); でできました。 シングルクオーテーション’¥t’でなく、ダブルクオーテーション”¥t”でした。 どうもアドバイスありがとうございました。