关于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 和 HTML
Oct 09 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
如何用PHP实现插入排序?
Apr 10 PHP
最常用的8款PHP调试工具
Jul 06 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
详解php中反射的应用
Mar 15 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
PHP7常量数组用法分析
Sep 26 PHP
yii框架使用分页的方法分析
Jul 25 PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 27 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
解析dedecms空间迁移步骤详解
2013/05/15 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
Python模块学习 datetime介绍
2012/08/27 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
python函数定义和调用过程详解
2020/02/09 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
教师职位说明书
2014/07/29 职场文书
自我检讨报告
2015/01/28 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
综合测评个人总结
2015/03/03 职场文书
公司年夜饭通知
2015/04/25 职场文书
中秋晚会致辞
2015/07/31 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers