关于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 相关文章推荐
mac下使用brew配置环境的步骤分享
May 23 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
fgetcvs在linux的问题
Jan 15 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
Aug 16 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
Dec 12 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
PHP框架自动加载类文件原理详解
Jun 06 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
如何做到多笔资料的同步
2006/10/09 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
跟老齐学Python之开始真正编程
2014/09/12 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
python如何求解两数的最大公约数
2018/09/27 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
群众路线剖析材料(四风问题)
2014/10/08 职场文书
美丽的大脚观后感
2015/06/03 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
mysql创建存储过程及函数详解
2021/12/04 MySQL