为什么我无法在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;
解决此问题的任何提示?
答案 0 :(得分:3)
虽然我不能用HEREDOC重现这一点(不同版本的PHP可能在这方面表现不同),但</script>
相当于PHP代码中的?>
,因为它与{的对应{ {1}}。例如:
<script language="php">
因此,无论您遇到<script language="php"> $a = 1; </script>
Test: <?= $a ?>
结束标记的问题,您都会遇到与?>
结束标记相同的问题。一种选择是将其存储在变量中并使用它。例如:
</script>