关于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 相关文章推荐
PHP5 的对象赋值机制介绍
Aug 02 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
PHP中$_SERVER使用说明
Jul 05 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
php实现每日签到功能
Nov 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
PHP正确配置mysql(apache环境)
2011/08/28 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
json的前台操作和后台操作实现代码
2012/01/20 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
python实现任意位置文件分割的实例
2018/12/14 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
函数指针的定义是什么
2016/08/14 面试题
struct和class的区别
2015/11/20 面试题
《雷雨》教学反思
2014/02/20 职场文书
小学生新年寄语
2014/04/03 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
童年读书笔记
2015/06/26 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书