关于PHP结束标签的使用细节探讨及联想


Posted in PHP onMarch 04, 2013

当PHP解析一个文件时,会寻找开始<?php和结束标记?>,标记告诉PHP开始和停止解释其中的代码。此种方式的解析可以使PHP嵌入到各种不同的文档中,凡是在一对开始和结束标记之外的内容都会被PHP解析器忽略。大多数情况下PHP都是嵌入在HTML文档中的。

单行注释仅仅注释到行末或者当前的 PHP 代码块,视乎哪个首先出现。这意味着在 // ... ?> 或者 # ... ?>之后的 HTML 代码将被显示出来:?> 跳出了 PHP 模式并返回了 HTML 模式,// 或 #并不能影响到这一点。

由以上讨论可可知,即使?>出现在//注释中,PHP解析器也会认为PHP解析结束(当 PHP 碰到结束标记 ?> 时,就简单地将其后的内容原样输出( 除非其后紧接着一个新行,参见指令分隔符)直到碰到下一个开始标记为止)。

<?php 
//$a = '<a href="test.html" title="#">test</a><a href="test.html" title="#">test</a>'; 
//preg_match_all('|<a[^>]+href="([^\"]*)".*?>|', $a, $b); 
//print_r($b);

输出为:
:!php preg.php 
|', $a, $b); 
//print_r($b);

如何修正上述问题呢?或者你使用/* */进行注释,或者将?>用字符串连接符进行连接,如下:
<?php 
$a = '<a href="test.html" title="#">test</a><a href="test.html" title="#">test</a>'; 
preg_match_all('|<a[^>]+href="([^\"]*)".*?'.'>|', $a, $b); 
print_r($b);

这一细节同样适用于JS结束标签</script>
PHP 相关文章推荐
理解php原理的opcodes(操作码)
Oct 26 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
PHP模拟post提交数据方法汇总
Feb 16 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
tp5 实现列表数据根据状态排序
Oct 18 PHP
PHP重载基础知识回顾
Sep 10 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 #PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 #PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 #PHP
Apache中php.ini的设置方法
Feb 28 #PHP
PHP中如何定义和使用常量
Feb 28 #PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 #PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 #PHP
You might like
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
用PHP读取RSS feed的代码
2008/08/01 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
PHP实现微信发红包程序
2015/08/24 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python中整数的缓存机制讲解
2019/02/16 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
基于Django实现日志记录报错信息
2019/12/17 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Python 实现进度条的六种方式
2021/01/06 Python
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
初中三好学生自我鉴定
2014/04/07 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
公司合作意向书范文
2014/07/30 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
超市员工管理制度
2015/08/06 职场文书
健康教育主题班会
2015/08/14 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript