我正在运行以下PHP代码:
<?php
</script>
?>
没有解析错误,输出为“ ?>”(示例)。
在类似的情况下,我确实收到了解析错误:
<?php
</div>
?>
解析错误:语法错误,意外的 '<' in ...
为什么不<?php </script> ?>给出同样的错误?
这一定是因为有多种方式可以启动一段 PHP 代码:
<? ... ?>(称为short_open_tag)
<?php ... ?>(真的是标准)
<script language="php"> ... </script>(不建议)
<% ... %>(在 5.3.0 之后已弃用并删除了 ASP 样式标签)
显然,您可以以一种方式打开 PHP 块,并以另一种方式关闭它。不知道那个。
因此,在您的代码中,您打开了块使用<?但 PHP 识别</script>为更接近。发生的事情是:
<?php <----- START PHP
</script> <----- END PHP
?> <----- JUST GARBAGE IN THE HTML
在 PHP 中,您可以使用script标签打开一个 PHP 块。
所以你可以使用
<script language="php">
echo 'hello world';
</script>
因此,在您的示例中,您将正常的打开标签 ,<?php与结束标签. 混合在一起</script>。所以解析器假定结束脚本标记之后的所有文本都是正常的HTML。
阅读从 HTML 中转义的更多信息。