我正在运行以下 PHP代码:
<?php </script> ?>
没有解析错误和 输出是“ ?>”(例子)。
?>
在类似的情况下,我会得到一个解析错误:
<?php </div> ?>
解析错误: 语法错误,意外的’<’在..。
为什么 <?php </script> ?>不给出相同的错误?
这一定是因为 启动 PHP 代码块有多种方式:
<? ... ?>(称为 short_open_tag)
<? ... ?>
short_open_tag
<?php ... ?>(真正的标准)
<?php ... ?>
<script language="php"> ... </script>(不推荐)
<script language="php"> ... </script>
<% ... %>(在5.3.0之后不再推荐和删除 ASP 样式的标记)
<% ... %>
显然,你可以用一种方式打开 PHP 块,然后用另一种方式关闭它。
因此,在代码中,您使用 <?打开代码块,但 PHP 将 </script>识别为最接近的代码块:
<?
</script>
<?php <----- START PHP </script> <----- END PHP ?> <----- JUST GARBAGE IN THE HTML
在 PHP 中,可以使用 script标记打开 PHP 块。
script
所以你可以利用
<script language="php"> echo 'hello world'; </script>
因此,在您的示例中,您将正常的开放标记 <?php与结束标记 </script>混合在一起。因此,解析器假定结束脚本标记之后的所有文本都是正常的 HTML。
<?php
HTML
阅读更多 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳。