有一个变量
$out = "<h4>Edit User-Bundle Configuration</h4>
<p>
Open file application/config/routes.php. Here you find:
<pre>$route['default_controller'] = 'welcome'</pre>
</p>";
当我做的时候
html_entity_decode($out);
现在我期待
<h4>Edit User-Bundle Configuration</h4>
<p> Open file application/config /routes.php. Here you find:
<pre>$route['default_controller'] = 'welcome'</pre>
</p>
但它会发出
<h4>Edit User-Bundle Configuration</h4>
<p> Open file application/config/routes.php. Here you find: </p>
<pre>$route['default_controller'] = 'welcome'</pre>
<p></p>
答案 0 :(得分:1)
你误解了这个问题。 PHP将输出您期望的代码。
您认为它输出的代码是将其传递给浏览器,将其呈现为HTML然后查看DOM(而不是查看源代码)的结果。
这是因为浏览器正在执行错误恢复。
禁止的<pre>
元素出现在<p>
元素中。 Paragraphs可能只包含phrasing content(不包含<pre>
元素)。
如果您跳过PHP并直接转到所需的HTML,则可以看到这一点:
<h4>Edit User-Bundle Configuration</h4>
<p> Open file application/config /routes.php. Here you find:
<pre>$route['default_controller'] = 'welcome'</pre>
</p>
Chrome中生成的DOM的屏幕截图,来自以上代码段: