- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望有人能给我一些提示。
我在使用 SimpePie 更新我的 MySQL 数据库时遇到问题。我正在使用它来获取一组基于下面代码的小调整的 RSS 提要。
奇怪的是,当我自己在浏览器中执行脚本时,脚本工作正常,但当它由 GoDaddy 的 CRON 任务执行时却不行。
我的 CRON 任务看起来像这样,没什么神奇的:
/web/cgi-bin/php5 "$HOME/html/gia_rss_cron.php"
通过GoDaddy返回的错误信息如下:
Fatal error: Call to a member function get_base() on a non-object in /home/content/40/xxx/html/php2/library/SimplePie/Item.php on line 167
完成这项工作的代码基于此代码,我已经尝试过 SimplePie 1.3.1 以及 1.4dev 以防万一。两者都抛出相同的错误,但仅在通过 CRON 运行时才提到,而不是在我手动运行文件时。
<?php
require_once('php/autoloader.php');
$feed = new SimplePie();
// Create a new instance of SimplePie
// Load the feeds
$urls = array(
'http://abcfamily.go.com/service/feed?id=774372' => 'abc',
'http://www.insideaolvideo.com/rss.xml' => 'aolvideo',
'http://feeds.bbci.co.uk/news/world/rss.xml' => 'bbcwn',
'http://www.bing.com' => 'bing',
'http://sports.espn.go.com/espn/rss/news' => 'espn',
'http://www.xfinitytv.com/' => 'xfinitytv',
);
$feed->set_feed_url(array_keys($urls));
$feed->enable_cache(false);
//$feed->set_cache_location('cache');
//$feed->set_cache_duration(1800); // Set the cache time
//$feed->set_item_limit(1);
$success = $feed->init(); // Initialize SimplePie
$feed->handle_content_type(); // Take care of the character encoding
?>
<?php require_once("inc/connection.php"); ?>
<?php require_once("inc/functions.php"); ?>
<?php include("inc/header.php"); ?>
<?php
// Sort it
$feed_items = array();
// $feed_items is an array
$items = $feed->get_items();
//$items is everything that $items = $feed->get_items(); produces
$urls = array_unique($urls);
// $url = is an empty $
foreach ($urls as $url => $image) {
$unset = array();
$feed_items[$url] = array();
foreach ($items as $i => $item) {
if ($item->get_feed()->feed_url == $url) {
$feed_items[$url][] = $item;
$unset[] = $i;
}
}
foreach ($unset as $i) {
unset($items[$i]);
}
}
foreach ($feed_items as $feed_url => $items) {
if (empty($items)) { ?>
<div class="item element" data-symbol="<?php echo $urls[$feed_url] ?>" name="<?php echo $urls[$feed_url] ?>">
<div class="minimise"><img src="images/boreds/<?php echo $urls[$feed_url] ?>.png"/>
<div class="minimise2">
<a href="<?php echo $feed_url; ?>"><h2>Visit <?php echo $urls[$feed_url] ?> now!</h2></a>
</div></div>
<div class="maximise">
<a href="<?php echo $feed_url; ?>"><h2>Visit <?php echo $urls[$feed_url] ?> now!</h2></a>
</div></div>
<?
continue;
}
$first_item = $items[0];
$feed = $first_item->get_feed();
?>
<?php
$feedCount = 0;
foreach ($items as $item) {
$feedCount++;
?>
<div class="item element" " data-symbol="<?php echo $urls[$feed_url] ?>" name="<?php echo $urls[$feed_url] ?>">
<div class="minimise"><strong id="amount"><?php echo ''.$feedCount; ?></strong>
<img src="images/boreds/<?php echo $urls[$feed_url] ?>.png"/>
<div class="minimise2"><a href="<?php echo $item->get_permalink(); ?>">
<h2><?php echo $item->get_title(); ?></h2></a>
</div></div>
<div class="maximise"><a href="<?php echo $item->get_permalink(); ?>">
<h2><?php echo $item->get_title(); ?></h2></a><br><p><?php echo $item->get_description(); ?></p>
</div></div>
<?php
}
}
?>
<?php require("inc/footer2.php"); ?>
更新:添加来自 SimplePie 库的 item.php 部分的代码以防有帮助,这是我能看到的唯一调用该函数的第 167 行。虽然脚本再次从我的浏览器运行,但不能通过 CRON(不确定在缩小问题范围方面给我们带来了什么)。
还尝试在 PHP 上报告错误,脚本没有从浏览器抛出其他错误或警告。
/**
* Get the base URL value from the parent feed
* Uses `<xml:base>`
* @param array $element
* @return string
*/
public function get_base($element = array())
{
return $this->feed->get_base($element);
}
最佳答案
它没有找到提要信息。这就是它最终出现此错误的原因。
如果您发现这种格式,请在您的代码中的任何位置
$item->get_...
改成这样的格式,
$item->get_feed()->get_....
例如,您可以在代码中看到这些行,
$item->get_title()
$item->get_permalink()
$item->get_description()
请将此行更改为,
$item->get_feed()->get_title()
$item->get_feed()->get_permalink()
$item->get_feed()->get_description()
如果你找到格式,对所有的人做同样的事情,
$item->get_...
关于php - SimplePie fatal error : Call to a member function get_base() on a non-object (Line 176),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31702489/
我希望有人能给我一些提示。 我在使用 SimpePie 更新我的 MySQL 数据库时遇到问题。我正在使用它来获取一组基于下面代码的小调整的 RSS 提要。 奇怪的是,当我自己在浏览器中执行脚本时,脚
我是一名优秀的程序员,十分优秀!