关于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 09 PHP
php简单提示框alert封装函数
Aug 08 PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
php防止sql注入的方法详解
Feb 20 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 PHP
php常用日期时间函数实例小结
Jul 04 PHP
Laravel框架实现文件上传的方法分析
Sep 29 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
模拟flock实现文件锁定
2007/02/14 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python变量不能以数字打头详解
2016/07/06 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
pandas对指定列进行填充的方法
2018/04/11 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
python 实现表情识别
2020/11/21 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
大学生求职信范文应怎么写
2014/01/01 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
清明节随笔
2015/08/15 职场文书
大队委员竞选稿
2015/11/20 职场文书
人民币符号
2022/02/17 杂记
httpclient调用远程接口的方法
2022/08/14 Java/Android
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技