关于这个主题有很多帖子,但我没有得到所需的答案。因此,我在这里。
我一直在注意:在我的php页面中尝试在第49行的/opt/lampp/htdocs/amit/crawlnepalstock.php 错误中获取非对象的属性。
这是我的代码
<?php
include_once('simple_html_dom.php');
error_reporting(E_ALL);
$html = file_get_html('http://nepalstock.com/datanepse/index.php');
$indexarray = array('s_no','stocksymbol', 'LTP', 'LTV', 'point_change', 'per_change', 'open','high', 'low', 'volume','prev_close');
$stocks = array();
$maincount = 0;
$tables = $html->find('table[class=dataTable]');
$str = $html->plaintext;
$matches = array();
foreach ($tables[0]->find('tr') as $elementtr) {
$count = 0;
$temp = array();
$anchor = $elementtr->children(1)->find('a',0);
$splits = preg_split('/=/', $anchor->href); **//line 49**
$temp['stocksymbol'] = isset($splits[1]) ? $splits[1] : null;
$temp['fullname'] = $elementtr->children(1)->plaintext;
$temp['no_of_trans'] = $elementtr->children(2)->plaintext;
$temp['max_price'] = $elementtr->children(3)->plaintext;
$temp['min_price'] = $elementtr->children(4)->plaintext;
$temp['closing_price'] = $elementtr->children(5)->plaintext;
$temp['total_share'] = $elementtr->children(6)->plaintext;
$temp['amount'] = $elementtr->children(7)->plaintext;
$temp['previous_close'] = $elementtr->children(8)->plaintext;
$temp['difference'] = $elementtr->children(9)->plaintext;
$stocks[] = $temp;
}
$html->clear();
unset($html);
echo '<pre>';
print_r($stocks);
echo '</pre>';
&GT;
我没有包含simple_html_dom.php类,因为它很长。非常感谢您的意见。您可以在http://sourceforge.net/projects/simplehtmldom/files/
的情况下在线查找simple_html_dom.php文件答案 0 :(得分:0)
您正在尝试访问非对象或null对象的属性。 e.g。
$obj = null;
echo $boject->first_name // this will produce same error as you are getting.
// another example may be
$obj = array();
echo $obj->first_name; // this will also produce same error.
在代码示例中,第49行不清楚,因此您应该在第49行检查自己的此类错误。
答案 1 :(得分:0)
之所以发生这种情况,是因为在google.com文档中找不到 td [align =“ center”] 标签。也许是在第一次编写代码时在那里。
因此,其他人关于非对象的说法是正确的,但是因为找不到HTML,所以没有对象可以使用-> plaintext方法。
从2020年12月11日起,如果将 example_basic_selector.php 的第6行中找到的URL更改为此: $ html = file_get_html('https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_td_align_css');
并更改此行
echo $ html-> find('td [align =“ center”]',1)-> plaintext。 '