gpt4 book ai didi

php - </script> 在 PHP heredoc 中

转载 作者:搜寻专家 更新时间:2023-10-31 20:44:10 24 4
gpt4 key购买 nike

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

此行下面的其余代码:

</script> 

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

这就像结束脚本代码结束了 PHP block 。

$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

有什么解决这个问题的技巧吗?

最佳答案

尽管我无法用 HEREDOC 重现这一点(不同版本的 PHP 可能在这方面表现不同),</script>相当于?>在 PHP 代码中,因为它对应于 <script language="php"> .示例:

<script language="php"> $a = 1; </script>
Test: <?= $a ?>

因此无论您遇到 ?> 的问题结束标记,您也会遇到与 </script> 相同的问题结束标签。一种选择是将其存储在变量中并使用它。示例:

<?php

$endScript = '</' . 'script>';
$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>
$endScript
</head>
<body>
.
.
.
HEAD;

关于php - &lt;/script&gt; 在 PHP heredoc 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15309987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com