为什么这个EOF javascript代码在回显时出现在html中?

时间:2011-07-25 10:33:11

标签: php eof

在这个PHP代码中,我使用heredoc EOF插入一些javascript:

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

当我试图回显$ room时,它不会出现:

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

($ room不会出现在html中)。

但是,如果我这样做:

$room= <<<EOF
test;
EOF;

然后单词test在我的list html元素中回显。

编辑 - 澄清一下,当我进行第一次回声尝试时,html的源代码中没有任何内容出现(列表出现,但没有脚本标记或在其中测试)。

1 个答案:

答案 0 :(得分: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>';