Hello Stackoverflow我试图使用以下库simplehtmldom.sourceforge.net
这个小脚本的目的是获取StackOverflow徽标并回显它。但由于一些奇怪的原因,它会抓取每个DOM元素。知道我在这里做错了吗?
<?php
include('simple_html_dom.php');
$request_url = 'http://stackoverflow.com/';
$html = file_get_html($request_url);
$element = $html->find('div[id=hlogo]');
echo $html->save($element);
提前感谢您花时间阅读本文!
答案 0 :(得分:0)
$html->find
以您正在使用它的形式返回一个数组,因此您需要访问数组的第一个元素才能获得结果:
include('simple_html_dom.php');
$html = file_get_html('http://stackoverflow.com');
$logo = $html->find('#hlogo'); // find the id hlogo
echo $logo[0];
# prints out
# <div id="hlogo"> <a href="/"> Stack Overflow </a> </div>
您还使用save
功能错误;来自文档:
// Dumps the internal DOM tree back into string
$str = $html->save();
// Dumps the internal DOM tree back into a file
$html->save('result.htm');
您正在获取整个页面,因为$html
包含整个DOM!