& lt; tr>和& lt; td>标签覆盖<pre>


<tr> and <td> tags overwriting <pre>

是否有<tr><td>标签在<pre>标签内工作的原因?

我使用<pre>标签来显示网站上的一些PHP代码,代码中是html标签<tr><td>的各种实例,这些都跳出了<pre>标签并在底部执行。他们为什么要这么做?

它们包含在echo之后,在"answers"里面,两者执行相同。我的CSS里没有pre,在网上也找不到类似的问题。

的例子:

echo '<table border="1">';
echo "<tr><td>A</td><td>B</td><td>C</td><td>D</td><td>E</td></tr>";
while($info = mysql_fetch_array($data)){
echo "<tr>";
echo "<td>" . $info['a'] . "</td>";
echo "<td>" . $info['b'] . "</td>"; 
echo "<td>" . $info['c'] . "</td>";
echo "<td>" . $info['d'] . "</td>";
echo "<td>" . $info['e'] . "</td>";
echo "</tr>";
};
echo "</table>";

我试过使用print,没有变化

您必须将<>编码为HTML实体。

https://mothereff.in/html-entities

https://html.spec.whatwg.org/multipage/named-characters.html named-character-references

那么<就是&lt; >就是&gt;

我认为<pre>标签的具体用途是将元素显示为它是什么,即使是非&nbsp;多个空格也将显示,也不是键盘(非<br />标签)的中断线,而不是失败的HTML标签。您可以使用此格式&lt;tag>来取消标记。但我不知道<pre>是否可以失败的PHP代码