关于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与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 PHP
php多个字符串替换成同一个的解决方法
Jun 18 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
PHP四舍五入、取整、round函数使用示例
Feb 06 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 PHP
PHP高并发和大流量解决方案整理
Dec 24 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 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
layui字体图标 loading图标静止不旋转的解决方法
2019/09/23 Javascript
js实现中文实时时钟
2020/01/15 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
Python备份Mysql脚本
2008/08/11 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
12步教你理解Python装饰器
2016/02/25 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
Python 绘制可视化折线图
2020/07/22 Python
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
作风建设整改方案
2014/10/27 职场文书
教师工作能力自我评价
2015/03/04 职场文书
债务追讨律师函
2015/06/24 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers