关于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扩展ZF――Validate扩展
Jan 10 PHP
PHP 错误之引号中使用变量
May 04 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 PHP
PHP生成自定义长度随机字符串的函数分享
May 04 PHP
分享十款最出色的PHP安全开发库中文详细介绍
Mar 22 PHP
windows下apache搭建php开发环境
Aug 27 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
详解php用static方法的原因
Sep 12 PHP
php测试kafka项目示例
Feb 06 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动态生成静态HTML网页的代码
2010/03/04 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
Python中实现参数类型检查的简单方法
2015/04/21 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
python pandas模块基础学习详解
2019/07/03 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
python求绝对值的三种方法小结
2019/12/04 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
python集合的新增元素方法整理
2020/12/07 Python
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
求职者简历中的自我评价
2013/10/20 职场文书
校园新闻广播稿
2014/01/10 职场文书
优质服务口号
2014/06/11 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
班级联欢会主持词
2015/07/03 职场文书
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis