在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转义 。