我有以下php代码:
$html = '<p>[tag]</p>';
$test = "<a href='#'><div class='test'>button</div></a>";
$html = str_replace("[tag]", $test, $html);
当使用echo htmlentities($ html)时,我得到了预期的结果:
<p><a href='#'><div class='test'>button</div></a></p>
但是当回显$ html时,firefox会像这样呈现:
<p>
<a href="#"></a>
</p>
<div class="test">
<p></p>
这很奇怪.. 任何想法有什么不对?
感谢
编辑:我发现用firebug检查是唯一错误的。当显示浏览器的源时,它会按预期显示。尽管如此,浏览器似乎是无效的HTML标记..
答案 0 :(得分:1)
我相信这是因为你不能在内联元素中使用块级元素。与此类似,您无法在<p>
代码中添加<span>
标记。
HTML 4.01 指定
<a>
元素只能包含内联 元素。<div>
是块元素,因此它可能不会出现在块内<a>
。
答案 1 :(得分:0)
也许你正在显示“选定的源代码”。在firefox中,所选源代码是带有标准使用规则的修改版本。您可以使用show page source显示检索到的DOM。
答案 2 :(得分:0)
请帮帮忙:用span替换div元素,它会起作用 原因:
那样做你很高兴:D