2011-07-25 4 views
2

なぜこのEOF JavaScriptコードがエコーされたときにhtmlに表示されないのですか?私はいくつかのJavaScriptを挿入するためにヒアドキュメントのEOFを使用し、このPHPコードで

 $room= <<<EOF 
<script type="text/javascript" charset="utf-8"> 
test; 
      </script> 
EOF; 

私はそれが表示されません$ルームをエコーし​​よう:

echo "<li style=\"text-align: center;\"><img src=\"example.com\" width=\"264\" height=\"198\" alt=\"\" /> $room</li>"; 

($室は表示されません。 htmlで)。私は同じことを行う場合

は、しかし:

$room= <<<EOF 
test; 
EOF; 

そして、単語テストは私のリストのhtml要素にこだまします。

EDIT - 明確にするために、最初のエコー試行(リストが表示されますが、スクリプトタグもテストもありません)を実行するとHTMLのソースに何も表示されません。

+0

を私はあなたには、いくつかのより多くを提供する必要があると思いますあなたが言うように、それはうまくいくはずです。あなたは '警告('テスト ')を試しましたか? javascriptの中のちょうどテストの代わりに? – gnur

+0

正確な出力は? – Dogbert

+0

'$ room = <<< 'EOF' ...'のようなnowdoc構文を使ってみましたか? – Nobody

答えて

1
<script type="text/javascript" charset="utf-8"> 
    test; 
</script> 

は、基本的にjavascriptを意味しません。私はあなたが(少なくとも何かを出力するという意味で)したいと思いたい:

<script type="text/javascript" charset="utf-8"> 
    document.write('test'); 
</script> 

あなたは文字通りしようと、スクリプトタグを表示したい場合は、次の

echo '<li style="text-align: center;"><img src="example.com" width="264" height="198" alt="" />', htmlspecialchars($room), '</li>'; 
+0

私は私の質問を編集しました。私はソースHTMLについて話していますが、javascriptコードはソースにエコーされません。 – David

+1

@Davidあなたのコードをコピー/ペーストして試してみると、完全にレンダリングされます。スクリプトタグとすべてを意味します。 – Yoshi

+0

私はそれが表示されないことを保証することができます。私はちょうどそれをもう一度試して、サーバーにアップロードし、ビューソースをクリックして、liタグにはありません。私は戻って、javascriptタグを切り抜いて、 'example'という言葉で置き換えてreuploadすると、liタグのソースとhtml出力の両方に表示されます。 – David