【问题标题】:<tr> and <td> tags overwriting <pre><tr> 和 <td> 标签覆盖 <pre>
【发布时间】:2013-03-23 23:45:55
【问题描述】:

&lt;tr&gt;&lt;td&gt; 标记在 &lt;pre&gt; 标记中可以工作,有什么原因吗?

我正在使用&lt;pre&gt; 标记在网站上显示一些 PHP 代码,代码中包含 html 标记 &lt;tr&gt;&lt;td&gt; 的各种实例,这些都跳出 @9​​87654327@ 标记并执行在底部。他们为什么要这样做??

它们被包含在echo 之后以及 "" 和 '' 内部,并且两者的执行方式相同。我的 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,没有变化

【问题讨论】:

    标签: php html html-table pre


    【解决方案1】:

    您必须将 &amp;lt;&amp;gt; 编码为 HTML 实体。

    https://mothereff.in/html-entities

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

    所以&amp;lt; 将是&amp;lt;&amp;gt; 将是&amp;gt;

    【讨论】:

    • 啊,好的。谢谢你的链接
    【解决方案2】:

    我认为&lt;pre&gt;标签的具体用途是显示元素是什么,即使是非&amp;nbsp;也会显示多个空格,也不是键盘的断线(非&lt;br /&gt; tag),而不是让 HTML 标记失败。您可以使用这种格式&amp;lt;tag&gt; 使标签失效。但我不知道&lt;pre&gt; 是否会导致 PHP 代码失败。

    【讨论】: