关于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 读取和修改大文件的某行内容的代码
Oct 30 PHP
php截取utf-8中文字符串乱码的解决方法
Mar 29 PHP
PHP foreach循环使用详解与实例代码
May 08 PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 PHP
php使用websocket示例详解
Mar 12 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 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跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
jquery each()源代码
2011/02/14 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
js初始化验证实例详解
2016/11/26 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
详解python3百度指数抓取实例
2016/12/12 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Python内置函数locals和globals对比
2020/04/28 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
实习教师自我鉴定
2013/12/12 职场文书
运动会稿件300字
2014/02/14 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
入党转正介绍人意见
2015/06/03 职场文书
公司开业致辞
2015/07/29 职场文书
HTML+JS实现在线朗读器
2022/02/15 Javascript
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js