我正在使用 PHP 将 HTML5 代码存储在 Maria 数据库中。在将 HMTL5 内容存储在数据库中之前,我使用解码实体
$Uncoded_content = mysqli_real_escape_string($database_link, html_entity_decode($HTML5_content,ENT_QUOTES | ENT_HTML5 ,'UTF-8'));
其中 $HTML_content 是 HTML5 源代码,带有实体编码。
我很生气,几个月后,存储各种字符(包括“<”、撇号、引号等)没有任何问题,我在 HTML 表格中看到,其中单元格中有一些“<”符号在公式中) 有些文字根本没有显示。检查数据库中存储的内容后,HTML 代码很好,未解码并且包含所有字符。最后,我发现如果我不在“<”符号前后留一个空格,网络浏览器会使一些文本消失。很明显,浏览器将“<”解释为打开标签。
这是 HTML5 源代码内容,因为它存储在数据库中。
<table cellpadding="2" cellspacing="0" width="570">
<tr>
<td>Zona lumínica</td>
<td>Superficie del cartel</td>
<td>Luminancia máxima (cd/m2)</td>
</tr>
<tr>
<td>E1</td>
<td>n/a</td>
<td>50</td>
</tr>
<tr>
<td>E2</td>
<td>n/a</td>
<td>400</td>
</tr>
<tr>
<td rowspan="3">E3</td>
<td>S
<2m<sup>2</sup>
</td>
<td>800</td>
</tr>
<tr>
<td>2
<S≤10m<sup>2</sup>
</td>
<td>600</td>
</tr>
<tr>
<td>S>10m<sup>2</sup></td>
<td>400</td>
</tr>
<tr>
<td rowspan="4">E4</td>
<td>S
<0,5m<sup>2</sup>
</td>
<td>1.000</td>
</tr>
<tr>
<td>0,5
<S≤2m<sup>2</sup>
</td>
<td>800</td>
</tr>
<tr>
<td>2
<S≤10m<sup>2</sup>
</td>
<td>600</td>
</tr>
<tr>
<td>S>10m<sup>2</sup></td>
<td>400</td>
</tr>
</table>
<p><br /><br /></p>
<table cellpadding="2" cellspacing="0" width="570">
<tr>
<td>Zona lumínica</td>
<td>Superficie del cartel</td>
<td>Luminancia máxima (cd/m2)</td>
</tr>
<tr>
<td>E1</td>
<td>n/a</td>
<td>50</td>
</tr>
<tr>
<td>E2</td>
<td>n/a</td>
<td>400</td>
</tr>
<tr>
<td rowspan="3">E3</td>
<td>S
< 2m<sup>2</sup>
</td>
<td>800</td>
</tr>
两个表是相同的,除了第二个表在每个“<”之前和之后都有空格,这些“<”在某些单元格中显示为原始文本 CONTENT。第一个表没有那些空格。
当我做一个简单的“回声”
echo $HTML5_source_content
来自该内容的 PHP(在 HTML5 结构中),显示第一个表并隐藏了一些文本。第二张表完全显示,因为它应该。为了避免这个问题,我尝试了:
echo htmlentities($HTML5_source_content, ENT_QUOTES | ENT_HTML5, "UTF-8");
但在这种情况下,浏览器不会显示已解析的 HTML 源代码,而是显示源代码本身(页面的其余部分显示为 HTML)。我什至尝试使用“htmlspecialchars”,但结果相同,源代码。
我忘记了什么?我的错误在哪里?
心有法竹
守着一只汪
鸿蒙传说
潇潇雨雨
随时随地看视频慕课网APP