在PHP中,为什么</ script>不显示分析错误?
我正在运行下面的PHP代码:
<?php </script> ?>
没有parsing错误, 输出是 “ ?> ”( 例子 )。
在类似的情况下,我得到一个parsing错误:
<?php </div> ?>
parsing错误:语法错误,意外的“<”在…
为什么不<?php </script> ?>给出相同的错误?
这一定是因为有不同的方法来启动一段PHP代码 :
-
<? ... ?><? ... ?>(称为short_open_tag) -
<?php ... ?>(真的是标准) -
<script language="php"> ... </script>(不推荐) -
<% ... %>(不推荐使用5.3.0之后的ASP风格标签)
显然,你可以用一种方法打开一个PHP块,然后closures另一个块。 不知道。
所以在你的代码中,你使用<? 但是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>混合在了一起。 所以parsing器假定closures脚本标记之后的所有文本都是正常的HTML 。
阅读更多从HTML转义 。