关于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 相关文章推荐
文件系统基本操作类
Nov 23 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
php之readdir函数用法实例
Nov 13 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
php投票系统之增加与删除投票(管理员篇)
Jul 01 PHP
yii2.0框架场景的简单使用示例
Jan 25 PHP
PHP unset函数原理及使用方法解析
Aug 14 PHP
浅谈如何提高PHP代码质量之端到端集成测试
May 28 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
jQuery 对象中的类数组操作
2009/04/27 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
Angular路由ui-router配置详解
2018/08/01 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
Python运行DLL文件的方法
2020/01/17 Python
Python matplotlib可视化实例解析
2020/06/01 Python
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
MySQL面试题
2014/01/12 面试题
远程调用的原理
2014/07/05 面试题
应届生程序员求职信
2013/11/05 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
高中地理教学反思
2014/01/29 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
社区戒毒工作方案
2014/06/04 职场文书
应届大学生自荐书
2014/06/17 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
2014年医院工作总结
2014/11/20 职场文书
初中重阳节活动总结
2015/05/05 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers