我正在尝试从<body>
普通 HTML 文档的标签中提取所有内容。
function extractHtml($html){
$doc = new simple_html_dom();
$html = $doc->load($html);
return $doc->find("body")->innertext;
}
传递的$html
是一个完整的 HTML 文档,尽管使用 is 加载它时load()
返回 null。这显然会导致 find() 产生一个通知
注意:试图获取非对象的属性
load() 返回 null 的原因可能是什么?
过去我做过;
function extractHtml($html){
$dom = new DOMDocument();
@$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
// get everything inside of <body>
$body = $dom->getElementsByTagName('body');
if($body && 0<$body->length) {
$body = $body->item(0);
}
$search = array('<body', 'body>');
$replace = array('<div', 'div>');
return str_replace($search, $replace, $dom->saveHTML($body));
}
虽然我现在需要这个在旧版本的 PHP 中工作来解决这个错误
警告:DOMDocument::saveHTML() 需要 0 个参数,1 个给定
这就是使用简单 html dom 进行测试的原因。
编辑: 当我通过如下更改 HTML 来测试我是否从文档中复制示例时,我仍然得到相同的错误。
$doc->load("<html><body>Hello!</body></html>");