关于PHP结束标签的使用细节探讨及联想

前端之家收集整理的这篇文章主要介绍了关于PHP结束标签的使用细节探讨及联想前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP解析一个文件时,会寻找开始<?php和结束标记?>,标记告诉PHP开始和停止解释其中的代码。此种方式的解析可以使PHP嵌入到各种不同的文档中,凡是在一对开始和结束标记之外的内容都会被PHP解析器忽略。大多数情况下PHP都是嵌入在HTML文档中的。 单行注释仅仅注释到行末或者当前的 PHP 代码块,视乎哪个首先出现。这意味着在 // ... ?> 或者 # ... ?>之后的 HTML 代码将被显示出来:?> 跳出了 PHP 模式并返回了 HTML 模式,// 或 #并不能影响到这一点。 由以上讨论可可知,即使?>出现在//注释中,PHP解析器也会认为PHP解析结束(当 PHP 碰到结束标记 ?> 时,就简单地将其后的内容原样输出( 除非其后紧接着一个新行,参见指令分隔符)直到碰到下一个开始标记为止)。
<div class="codetitle"><a style="CURSOR: pointer" data="1733" class="copybut" id="copybut1733" onclick="doCopy('code1733')"> 代码如下:

<div class="codebody" id="code1733">
<?PHP
//$a = '<a href="test.html" title="#">test<a href="test.html" title="#">test';
//preg_match_all('|<a[^>]+href="([^\"])".?>|',$a,$b);
//print_r($b);

输出为:
<div class="codetitle"><a style="CURSOR: pointer" data="93447" class="copybut" id="copybut93447" onclick="doCopy('code93447')"> 代码如下:
<div class="codebody" id="code93447">
:!PHP preg.PHP
|',$b);
//print_r($b);

如何修正上述问题呢?或者你使用/ /进行注释,或者将?>用字符串连接符进行连接,如下:
<div class="codetitle"><a style="CURSOR: pointer" data="71420" class="copybut" id="copybut71420" onclick="doCopy('code71420')"> 代码如下:
<div class="codebody" id="code71420">
<?PHP
$a = '<a href="test.html" title="#">test<a href="test.html" title="#">test';
preg_match_all('|<a[^>]+href="([^\"])".?'.'>|',$b);
print_r($b);

这一细节同样适用于JS结束标签

php标签结束标签

猜你在找的PHP相关文章