在PHP heredoc中

时间:2013-03-09 11:10:53

标签: php javascript heredoc

为什么我无法在PHP heredoc中结束javascript?

此行下面的其余代码:

</script> 

不会成为PHP代码的一部分。它们成为HTML代码。

就像结束脚本代码结束PHP块一样。

$headerContent = <<<HEAD
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
    <head>
    <title>$title</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />

    <script>
    </script> // Here is the problem
    </head> // code here and below becomes not part of PHP.
    <body>
    .
    . 
    .
HEAD;

screenshot for better view

解决此问题的任何提示?

1 个答案:

答案 0 :(得分:3)

虽然我不能用HEREDOC重现这一点(不同版本的PHP可能在这方面表现不同),但</script>相当于PHP代码中的?>,因为它与{的对应{ {1}}。例如:

<script language="php">

因此,无论您遇到<script language="php"> $a = 1; </script> Test: <?= $a ?> 结束标记的问题,您都会遇到与?>结束标记相同的问题。一种选择是将其存储在变量中并使用它。例如:

</script>