单行注释仅仅注释到行末或者当前的 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>
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!