Simple_html_dom load_file函数不起作用

时间:2014-10-15 21:12:22

标签: php

我对这个错误感到沮丧!我的代码工作和代码不起作用。不知道是什么问题。

错误消息是:

  

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>

1 个答案:

答案 0 :(得分:0)

看起来你正在循环一个feed,也许你试图读取的一些链接是无效的,因为你试图从它们中读取而没有任何检查,这就是你可能收到错误消息的原因。所以在$ htmlDOM-&gt; load_file($ post_link)之后;在继续之前检查文件是否已加载。