我对这个错误感到沮丧!我的代码工作和代码不起作用。不知道是什么问题。
错误消息是:
PHP致命错误:在非对象上调用成员函数find()
查看我的非工作代码的底部。
有问题的代码行是:
$post_link = $item->get_link();
$htmlDOM->load_file($post_link);
$image = $htmlDOM->find('img', 0);
if ($image->src) {
echo '<media:thumbnail url="' . $image->src . '" width="320" />';
}
工作代码:
<?php
// Create DOM from URL or file
include_once('simple_html_dom.php');
include_once('functions.inc');
$html = new simple_html_dom();
$html->load_file('http://themaroontiger.com/an-advantageous-affair/');
$image = $html->find('img', 0);
if ($image->src) {
echo '<media:thumbnail url="' . $image->src . '" width="320" />';
}
exit;
?>
无工作代码:
<?php
header("Content-Type: application/rss+xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>Maroon Tiger Feed</title>
<link>http://www.webmaster-source.com</link>
<description>
Maroon Tiger Feed
</description>
<language>en-us</language>
<?
include_once('simple_html_dom2.php');
include_once('simplepie.inc');
include_once('functions.inc');
// MAIN BEGIN
$feed = new SimplePie(); // Create a new instance of SimplePie
$htmlDOM = new simple_html_dom();
$feed->set_feed_url(array(
'http://themaroontiger.com/feed/'
));
$feed->enable_cache('false'); //Do we cache
$feed->set_cache_duration(600); //The cache duration
//$feed->enable_xml_dump(isset($_GET['xmldump']) ? true : false);
$success = $feed->init(); // Initialize SimplePie
$feed->handle_content_type(); // Take care of the character encoding
?>
<? if ($success): ?>
<? $itemlimit=0; ?>
<? foreach($feed->get_items() as $item): ?>
<? if ($itemlimit==20) { break; } ?>
<item>
<title><?= decode_entities($item->get_title()); ?> </title>
<link><?= $item->get_permalink(); ?></link>
<dc:creator>
<?
if ($author = $item->get_author())
{
echo $author->get_name();
}
?>
</dc:creator>
<category><? if ($the_category = $item->get_category()) {
echo $the_category->get_label();
} else {
echo 'Facebook Feed';
};?>
</category>
<description><![CDATA[
<? echo $item->get_description(); ?>
]]></description>
<guid isPermaLink="false"><? echo $item->get_id(); ?></guid>
<pubDate><? echo $item->get_date('D, d M Y H:i:s T'); ?></pubDate>
<?
$post_link = $item->get_link();
$htmlDOM->load_file($post_link);
$image = $htmlDOM->find('img', 0);
if ($image->src) {
echo '<media:thumbnail url="' . $image->src . '" width="320" />';
}
?>
</item>
<? $itemlimit++ ?>
<? endforeach; ?>
<? endif; ?>
</channel>
</rss>
答案 0 :(得分:0)
看起来你正在循环一个feed,也许你试图读取的一些链接是无效的,因为你试图从它们中读取而没有任何检查,这就是你可能收到错误消息的原因。所以在$ htmlDOM-&gt; load_file($ post_link)之后;在继续之前检查文件是否已加载。