<body>
通常の HTML ドキュメントのタグ内からすべてを抽出しようとしています。
function extractHtml($html){
$doc = new simple_html_dom();
$html = $doc->load($html);
return $doc->find("body")->innertext;
}
is を使用してロードすると null が返されます$html
が、渡されるのは完全な HTML ドキュメントです。load()
これにより、明らかに find() が通知を生成します
Notice: 非オブジェクトのプロパティを取得しようとしています
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>");