プロが教えるわが家の防犯対策術!

お世話になります。
$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)));
などとしてもだめでした。
よろしくお願いいたします。

A 回答 (3件)

削除はされないと思います


ただHTMLではタブ、スペース、改行は表示されないですね
htmlspecialcharsした後にに変換したらどうでしょう
    • good
    • 0
この回答へのお礼

php504さん、今日は。
早速レスありがとうございます。
>削除はされないと思います
この指摘をたよりに更に色々と試してみました。
echo str_replace("\t", '&nbsp;&nbsp;&nbsp;&nbsp;',nl2br(htmlspecialchars($str)));
でできました。
シングルクオーテーション’¥t’でなく、ダブルクオーテーション”¥t”でした。
どうもアドバイスありがとうございました。

お礼日時:2010/11/20 13:03

他の方の回答と同じですが、ブラウザで「ソースを見る」だと、タブがあるはずです。


そのタブがブラウザ画面上で期待通りに表示されていないとしたら、「これこれこういう表示にしたいが、どういうHTMLを書いたらいいか」というHTMLの問題になります。
<pre> ~ </pre> で囲むのが簡単か。
    • good
    • 0
この回答へのお礼

notnotさん、今日は。
早速アドバイスありがとうございます。
><pre> ~ </pre> で囲むのが簡単か。
その通りでした。
思いつきませんでした。
tabの文字数が、半角8文字となってしまいますが。
どうもありがとうございました。

お礼日時:2010/11/20 13:13

質問の意図がはっきりしているようにみえて実はあいまいという、特殊な質問に感じました。


ぱっと見、この質問にある現象は何も問題ないように見えます。

一般に、連続する空白文字(半角スペースやタブ、改行文字など)は、ブラウザで見ると空白1つに見えます。
テキストエディタで見れば、省略されずそのまま見えます。

また、上記__は、ブラウザで見れば表示されません。
テキストエディタで見れば表示されます。

もしかしてブラウザで見たとき"表示テスト"の前にいくらかスペースがほしいということでしょうか。
そうであればスタイルシートを使ったほうが良いでしょう。margin-leftとか。

そこで確認なのですが、何が問題なのでしょう。具体的に何に困っているんでしょう。
細かいこと突っつくようですが、どうしてトラブルを抱えていると思ったのでしょうか。
そこをはっきりさせましょう。そのほうが解決にしっかりと近づいていけると思います。
    • good
    • 0
この回答へのお礼

honoka-chaさん、今日は。
どうもアドバイスありがとうございます。
>何が問題なのでしょう。
javascriptをテキストエディタで編集してそのスクリプトを実行すると同時に、テキストエディタで編集しているイメージ通り段下げをしてブラウザで表示しようと思いました。
その、表示の方が思うようにいかなくて質問をさせていただきました。

お礼日時:2010/11/20 13:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!