我正在运行以下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 中转义的更多信息。