为什么我会收到有关此代码的警告?
$content ='<p>
<a href="http://www.we.com/1000">text </a>
text
<a href="http://www.we.com/2345">text </a>
text
</p>
<p>text</p>
<p>
<table border="1" cellpadding="0" cellspacing="0" dir="rtl">
<tbody>
<tr>
<td>text </td>
<td>text </td>
<td>text </td>
</tr>
<tr>
<td>text </td>
<td>text </td>
<td>text </td>
</tr>
</tbody>
</table>
</p>';
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->loadHTML($content);
警告是:
警告:DOMDocument :: loadHTML():意外的结束标记:实体中的p, 线:25英寸 /home/admin/domains/we.com/public_html/refresh/lib/core.php on 第2213行&lt; p&gt; &lt; a href =&#34; http://www.we.com/1000">text&lt; / a&gt;文字&lt; a href =&#34; http://www.we.com/2345">text&lt; / a&gt;文字&lt; / p&gt; &LT; p为H.文字&lt; / p为H. &LT; p为H. &lt; / p&gt;&lt; table border =&#34; 1&#34; CELLPADDING =&#34; 0&#34; CELLSPACING =&#34; 0&#34; dir =&#34; rtl&#34;&gt;&lt; tbody&gt;&lt; tr&gt;&lt; td&gt; text&lt; / td&gt; &lt; td&gt; text&lt; / td&gt; &lt; td&gt; text&lt; / td&gt; &lt; / tr&gt;&lt; tr&gt;&lt; td&gt; text&lt; / td&gt; &lt; td&gt; text&lt; / td&gt; &lt; td&gt; text&lt; / td&gt; &LT; / TR&GT;&LT; / tbody的&GT;&LT; /表&gt;
答案 0 :(得分:5)
段落的结束标记是可选的。表格可能不会出现在段落中。 table start标签隐式结束该段落。下一段结尾标记没有要关闭的开放段落。
参见&#34;在text / html&#34中标记遗漏;在the spec for p。
答案 1 :(得分:0)
添加 @ 可以禁止显示警告,如下所示:
@$doc->loadHTML($content);
这是因为大多数HTML对象的格式都不完美,甚至“ p”之类的元素也会自动关闭