关于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 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
php5.3 废弃函数小结
May 16 PHP
解析thinkphp的左右值无限分类
Jun 20 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
ThinkPHP框架里隐藏index.php
Apr 12 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
关于PHP通用返回值设置方法
Mar 31 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 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 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python中datetime模块参考手册
2017/01/13 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
django的csrf实现过程详解
2019/07/26 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
超市5.1促销活动
2014/01/15 职场文书
合作经营协议书范本
2014/04/17 职场文书
物流管理专业推荐信
2014/09/06 职场文书
六五普法宣传标语
2014/10/06 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android