DOMDocument :: loadHTML()中实体中的意外结束标记p错误

时间:2015-03-03 12:51:25

标签: php compiler-errors domdocument

为什么我会收到有关此代码的警告?

$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;

2 个答案:

答案 0 :(得分:5)

段落的结束标记是可选的。表格可能不会出现在段落中。 table start标签隐式结束该段落。下一段结尾标记没有要关闭的开放段落。

参见&#34;在text / html&#34中标记遗漏;在the spec for p

答案 1 :(得分:0)

添加 @ 可以禁止显示警告,如下所示:

@$doc->loadHTML($content);

这是因为大多数HTML对象的格式都不完美,甚至“ p”之类的元素也会自动关闭