简单 html dom 查找给出错误尝试获取非对象的 属性
simple html dom find gives error Trying to get property of non-object
我正在使用 simple_html_dom 从网站获取文本,但它给了我
Notice: Trying to get property of non-object in C:\wamp64\www\fetch.php on line 6
网站有这个。
<div>
<div class="info">number: (IUL)306/306/2016/68</div>
<div class="info">published date: 14 june 2016</div>
<div class="info">published time: 1442</div>
<div class="info">expiry time 23 june 2016 1100</div>
<div>
我的 php 看起来像这样,我正在尝试使用 class 信息获得第二个 div。
<php?include_once('simple_html_dom.php');
$html = file_get_html('http://www.example.com');
$html->save();
foreach($html->find('div[class=info]', 2) as $e)
$pdate = $e->innertext . '<br>';
echo "pdate: $pdate";
?>
有什么可能的解决方案吗?
如果您提供索引:
$html->find('div[class=info]', 2)
^ this one
您将直接获取元素。所以你不妨直接使用 ->innertext
。你已经得到了第三个元素:
$info = $html->find('div[class=info]', 2);
echo $info->innertext;
不需要那个foreach
。
如果你需要 foreach
,那么就单独使用它:
$html->find('div[class=info]')
// ^ note: the second argument is omitted
这将为您提供找到的元素集合。示例:
foreach($html->find('div[class=info]') as $e) {
echo $e->innertext, '<br/>';
}
这实际上在manual中有所涉及。
它在 如何找到 HTML 元素? 部分。
您只需执行以下操作即可获得结果:
<?php
require_once('simple_html_dom.php');
$html = file_get_html('http://www.example.com');
$html->save();
$pdate = $html->find('div[class=info]', 1)->plaintext;
echo "pdate: $pdate";
我正在使用 simple_html_dom 从网站获取文本,但它给了我
Notice: Trying to get property of non-object in C:\wamp64\www\fetch.php on line 6
网站有这个。
<div>
<div class="info">number: (IUL)306/306/2016/68</div>
<div class="info">published date: 14 june 2016</div>
<div class="info">published time: 1442</div>
<div class="info">expiry time 23 june 2016 1100</div>
<div>
我的 php 看起来像这样,我正在尝试使用 class 信息获得第二个 div。
<php?include_once('simple_html_dom.php');
$html = file_get_html('http://www.example.com');
$html->save();
foreach($html->find('div[class=info]', 2) as $e)
$pdate = $e->innertext . '<br>';
echo "pdate: $pdate";
?>
有什么可能的解决方案吗?
如果您提供索引:
$html->find('div[class=info]', 2)
^ this one
您将直接获取元素。所以你不妨直接使用 ->innertext
。你已经得到了第三个元素:
$info = $html->find('div[class=info]', 2);
echo $info->innertext;
不需要那个foreach
。
如果你需要 foreach
,那么就单独使用它:
$html->find('div[class=info]')
// ^ note: the second argument is omitted
这将为您提供找到的元素集合。示例:
foreach($html->find('div[class=info]') as $e) {
echo $e->innertext, '<br/>';
}
这实际上在manual中有所涉及。
它在 如何找到 HTML 元素? 部分。
您只需执行以下操作即可获得结果:
<?php
require_once('simple_html_dom.php');
$html = file_get_html('http://www.example.com');
$html->save();
$pdate = $html->find('div[class=info]', 1)->plaintext;
echo "pdate: $pdate";