我是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
请帮我解决此问题。
答案 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>"