关于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 相关文章推荐
动态新闻发布的实现及其技巧
Oct 09 PHP
PHP编程中字符串处理的5个技巧小结
Nov 13 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
php实现水仙花数示例分享
Apr 03 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
Sep 27 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
PHP编写daemon process 实例详解
Nov 13 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
Yii框架分页技术实例分析
Aug 30 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设计模式中单例模式的应用分析
2013/05/15 PHP
php异常处理使用示例
2014/02/25 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
Vue中props的详解
2019/05/16 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
python求pi的方法
2014/10/08 Python
Python Celery多队列配置代码实例
2019/11/22 Python
Pycharm小白级简单使用教程
2020/01/08 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
介绍一下write命令
2012/09/24 面试题
土木工程专业个人求职信
2013/12/30 职场文书
社区党员先进事迹
2014/01/22 职场文书
农民工讨薪标语
2014/06/26 职场文书
购房委托书范本
2014/09/18 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
美容院员工规章制度
2015/08/05 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL