Php提取html主体内容以及html标签不仅是纯文本

时间:2016-10-31 13:00:10

标签: javascript php jquery html

我是php新手。我试图使用php从html中提取整个body标签。

这是我的样本html:

<html>
<body >
<p>
  Example html content
</p>
</body>
</html>

我希望仅从html内容中获取内容:

<p>
  Example html content
</p>

使用以下我尝试解决但它只输出没有html标签的字符串:

 $dom = new domDocument;
 $dom->loadHTML("<html><body><p>Example html content</p></body></html>");
 $body = $dom->getElementsByTagName('body')->item(0);
 var_dump($body->textContent); //output:Example html content

请帮我解决此问题。

4 个答案:

答案 0 :(得分:0)

您应该使用saveHTML()代替:

echo $body->saveHTML();

将按预期输出HTML。

答案 1 :(得分:0)

我不喜欢php native dom,尝试使用简单的html dom,它简单快捷。从https://sourceforge.net/projects/simplehtmldom/

下载
include 'simple_html_dom.php';
$html = new simple_html_dom();
$html = file_get_html("<html><body><p>Example html content</p></body></html>");
$data = $html->find('body',0);

$ data包含所有正文元素。

答案 2 :(得分:0)

使用此

 $data = "<html><body><p>Example html content</p></body></html>";
 preg_match( '/<body>(.*?)<\/body>/', $data, $match );
 print_r($match[1]);

答案 3 :(得分:0)

按以下方式更新您的代码:

   $dom = new domDocument;
   $dom->loadHTML("<html><body><p>Example html content</p></body></html>");
   $body = $dom->getElementsByTagName('body')->item(0);
   var_dump($dom->savehtml($body));

输出应与html标签一起使用:

string(26) "<p>Hello!</p>"