也许我错过了一些东西......但是在这段代码中DOM对象是空的:
$input = file_get_contents('http://www.google.com/');
$doc = new DOMDocument();
@$doc->loadHTML($input); //supress errors on invalid html!
var_dump($doc);
die();
我真的不知道该代码有什么问题。我已经验证$ input实际上已填充了网页的html内容。
输出是: object(DOMDocument)#3(0){}
我不明白为什么......
答案 0 :(得分:6)
这是预期的行为。要查看HTML,请使用DOMDocument::saveHTML()
(或saveXML()
)。
答案 1 :(得分:2)
输出为:object(DOMDocument)#3(0){}
是。这就是var_dump
ed DOMDocument
的样子。
如果您想查看文档内的 内容的HTML表示,请在其上saveHTML()
。这样就可以在Google的主页上为我清除HTML版本。
答案 2 :(得分:0)
试试这个
$input = file_get_contents('http://www.google.com/');
$doc = new DOMDocument();
$test=@$doc->loadHTML($input); //supress errors on invalid html!
var_dump($test);
die();
//output
//bool(true)
?>
或尝试
$input = file_get_contents('http://www.google.com/');
$buffer = ob_get_clean();
$tidy = new tidy();
$input = $tidy->repairString($input);
$doc = new DOMDocument();
@$doc->loadHTML($input); //supress errors on invalid html!
var_dump($doc);
die();