关于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图片验证码代码
Mar 27 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
php GUID生成函数和类
Mar 10 PHP
将FCKeditor导入PHP+SMARTY的实现方法
Jan 15 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
PHP写API输出的时用echo的原因详解
Apr 28 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
php实现的zip文件内容比较类
2014/09/24 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
jquery 可排列的表实现代码
2009/11/13 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
对python判断是否回文数的实例详解
2019/02/08 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
戒毒悔改检讨书
2014/09/21 职场文书
银行实习推荐信
2015/03/27 职场文书
房产遗嘱范本
2015/08/06 职场文书
MySQL创建定时任务
2022/01/22 MySQL
Java字符串逆序方法详情
2022/03/21 Java/Android
2022年显卡天梯图(6月更新)
2022/06/17 数码科技