在PHP中, 为什么</script>不产生语法解析错误

PHP作为主流网站建设语言,在使用过程中有很多陷阱,需要程序员主意。
在PHP脚本中,如果写如下代码
<?php
</script>
?>
这个php脚本并没有提示任何错误,而是直接输出了 "?>"。感觉很不可思议,于是我们再写如下代码
<?php
</div>
?>
这次却提示解析错误,Parse error: syntax error, unexpected '<' in ...
为什么第一次的</script>不提示错误呢?
这时我们需要再仔细阅读一下PHP的相关手册了there are various ways of starting a block of PHP code:
可以在 PHP 中使用四对不同的开始和结束标记。其中两种,<?php ?> 和 <script language="php"> </script> 总是可用的。另两种是短标记和 ASP 风格标记,可以在 php.ini 配置文件中打开或关闭。尽管有些人觉得短标记和 ASP 风格标记很方便,但移植性较差,通常不推荐。
也就是所,php的标签有4中,而<script>也是其中之一,并且和<?php ?>一样,总是可用的,其他的两种需要在配置文件中打开。
<? ... ?> (在配置文件中通过short_open_tag打开)
<?php ... ?>
<script language="php"> ... </script>
<% ... %> (ASP风格标签,在5.3.0版中放弃使用)
本文链接http://www.cxybl.com/html/wlbc/Php/20130601/38185.html

时间: 2024-08-30 13:29:19

在PHP中, 为什么&lt;/script&gt;不产生语法解析错误的相关文章

java语法-java中把伪代码写成这样,语法有错误吗

问题描述 java中把伪代码写成这样,语法有错误吗 public Class A { A a = new A (); public a A () { return a;} 解决方案 public A getA(){return this.a;};

IE8中动态创建script标签onload无效的解决方法_javascript技巧

本文实例讲述了IE8中动态创建script标签onload无效的解决方法.分享给大家供大家参考.具体分析如下: 今天做项目,发现一个奇怪的问题,动态创建的script标签在IE8下无法触发onload事件. 代码如下: 复制代码 代码如下: var loadJs = function(src, fun){     var script = null;     script = document.createElement("script");     script.type = &qu

请教script中套一个script的具体用法

问题描述 我想知道script中套一个script的具体用法.<scriptlanguage="javascript">functionShowMenu(){varbarCTT=document.getElementById("dNavBar")varliArr=barCTT.getElementsByTagName("li")varlinks=newArray()links[0]="就是在这里面再加一个<script

ThinkPHP 3.2 模板中的Angularjs 的变量{{$first}} 无法被解析

ThinkPHP 3.2 模板中的Angularjs 的变量"{{$first}}" 无法被解析, 模板解析冲突,例如在angularjs 的变量"{{$first}}",则TP模板不会解析该变量的 <li ng-repeat="(k,v) in data" style="{{$odd?'color:red':''}}"> ID:{{v.user_id}} 用户名:{{v.username}} IP地址:{{v.l

python 爬虫 怎么获取标签中的注释?我用得lxml解析html

问题描述 python 爬虫 怎么获取标签中的注释?我用得lxml解析html <span>当前第9127页 <!--共136904条-->  </span> 怎么才能获取注释里的值呢? tree=etree.HTML(page) pagenumber=tree.xpath(xpathStr) for i in pagenumber: totalpage=filter(str.isdigit,str(i)) 解决方案 注释不属于xml格式了,你拿到span节点后获取它的

vb2010中 如何自定义坐标系,用scale语句提示错误

问题描述 vb2010中如何自定义坐标系,用scale语句提示错误 解决方案 解决方案二:LZ怎样写的,报什么错误??解决方案三:自己的想法:想和vb6中那样自己定义一个坐标系vb2010中的语句DimgrAsGraphicsgr=picbox.CreateGraphicspicbox.Scale(0.0)-(100,100)错误提示警告1"PublicSubScale(ratioAsSingle)"已过时:"Thismethodhasbeendeprecated.Useth

java-Java中PDF转图片报运行时异常,错误看不懂,求帮助

问题描述 Java中PDF转图片报运行时异常,错误看不懂,求帮助 下图是控制台报错信息,求大神帮忙看看,是PDF格式不支持吗? 解决方案 看下是不是你的页面太多,内存不够,需要调整jvm设置.

springmvc-springMVC中@response和jquery的ajax提取报406错误

问题描述 springMVC中@response和jquery的ajax提取报406错误 代码很常规,在后台手动打包成JSON就可以正常的传过去,但是写成@responsebody就不行,数据库也响应正确了,就是传过去的参数前台拿不到,改成了$.ajax的写法设置了请求头仍然没有用,网上说用maven进行依赖什么的,pom.xml我没有写过啊.求教~~~ 解决方案 报406错误,如果你确定配置文件没错的话,在你java代码里做几个输出到控制台的标记,运行一下,控制台里没问题的话,就是说明缺少ja

cocos2d-x中使用strcmp比较中文字符串总出现中断错误这是为什么呢?

问题描述 cocos2d-x中使用strcmp比较中文字符串总出现中断错误这是为什么呢? cocos2d-x中使用strcmp比较中文字符串总出现中断错误这是为什么呢?strcmp(CCEditBox * editBox->getString()const char * keyword)其中两个参数都是中文字符串 解决方案 getString返回的是UTF8字符串,要把它转为ANSI字符串,才能正常的strcmp