获取不带 DOCTYPE、HTML、HEAD 和 BODY 标签的 BODY 内容

php
2022-08-30 20:43:59

我试图做的是在PHP系统中包含一个HTML文件(不是问题),但是由于各种原因,该HTML文件也需要单独使用,所以我需要知道如何在PHP的上下文中剥离doctype,html,head和body标签包括, 如果可能的话。

我不是特别擅长PHP(doh!)所以我对php手册和网络搜索并没有让我弄清楚这一点。这意味着任何帮助或阅读技巧,或两者兼而有之,都非常感谢。


答案 1

由于该方法似乎对某些人来说太多了,因此这里有一个DOM解析器方法:substr()

$d = new DOMDocument;
$mock = new DOMDocument;
$d->loadHTML(file_get_contents('/path/to/my.html'));
$body = $d->getElementsByTagName('body')->item(0);
foreach ($body->childNodes as $child){
    $mock->appendChild($mock->importNode($child, true));
}

echo $mock->saveHTML();

http://codepad.org/MQVQ3XQP

任何人都希望看到“另一个”,请参阅修订。


答案 2
$site = file_get_contents("http://www.google.com/");

preg_match("/<body[^>]*>(.*?)<\/body>/is", $site, $matches);

echo($matches[1]);

推荐