Может быть, мне что-то не хватает … но объект 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) {}
Я не понимаю, почему …
Это ожидаемое поведение. Чтобы увидеть HTML, используйте DOMDocument::saveHTML()
(или saveXML()
).
Вывод: object (DOMDocument) # 3 (0) {}
Да. Вот как выглядит var_dump
ed DOMDocument
.
Если вы хотите посмотреть на HTML-представление содержимого внутри документа, saveHTML()
на нем. Это выдает очищенную версию HTML на главной странице Google для меня.
Попробуй это
$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();