SimplePie分页/缓存

时间:2013-04-01 03:58:00

标签: php simplepie

我正在尝试了解SimplePie在linux上的缓存功能。它永远不会告诉我们为RSS提要创建一个单独的mySql数据库,所以我猜测所有缓存都是在本地完成的。 (在/ httpdocs /目录中?)

我无法弄清楚SimplePie在导入后如何存储文章...(在linux上使用默认安装说明)以及这些文章存储在数据库中的时间。

这个问题主要涉及SimplePie,其网站上指定了简单的分页设置 -

http://simplepie.org/wiki/tutorial/how_to_do_item_paging

但问题是,它只会在相互覆盖之前保留一定数量的物品(物品)。

例如,我在这里设置了一个基本的SimplePie页面 -

http://www.oil-gas-prices.com/

在底部,它总是在76左右切断。(显示76的1 - 10)

我想指定一个1000.所以它会在那里切断。

调整以下任何特定值不会增加索引/缓存项目的总量:

// Set our paging values
$start = (isset($_GET['start']) && !empty($_GET['start'])) ? $_GET['start'] : 0; // Where do we start?
$length = (isset($_GET['length']) && !empty($_GET['length'])) ? $_GET['length'] : 5; // How many per page?
$max = $feed->get_item_quantity(); // Where do we end?

我的主要优先事项是在缓存中存储更多内容,而不会覆盖其他文章,从而减少存储项目的数量。

我已经在linux上安装了最新版本的SimplePie。没有wordpress扩展或任何东西。

我非常感谢任何帮助。这些天很难找到合法的SimplePie帮助,

1 个答案:

答案 0 :(得分:1)

默认情况下,它将缓存的文章存储在/ cache目录中,尽管它们的文档说明:“SimplePie包含一个缓存系统,可以与基于文件的缓存,数据库缓存或Memcache支持的缓存系统一起使用。”。默认缓存持续时间为一小时。但是您可以使用set_cache_duration功能覆盖它。确保将缓存文件夹权限设置为至少755.您可能需要将其增加到775或777(但如果可能的话,请避免这种情况)。

就项目数量的限制而言,您是设置最大Feed数量还是每个Feed的最大数量?对于我的实现,我将其限制为每个馈送25和3,它运行良好。我不知道是否有默认的最大值,但可能存在,您可能需要手动覆盖它。例如,我在我的网站上有这个PHP代码:

$max_items_total = 25;     // This sets the maximum number of blogroll items to display
$max_items_per_feed = 3;   // this sets the maximum number of items from each feed to display

$feed = new SimplePie();
$feed->set_feed_url($feed_ary);

// limit the number of items
$feed->set_item_limit($max_items_per_feed);
$feed->enable_cache(true);  // on by default, but I want to be sure
$feed->set_cache_duration(86400);  // set cache duration to 24 hours

foreach ($feed->get_items(0, $max_items_total) as $key=>$item) {
   ...
}

for循环为我获取项目1到25。您可以使用类似的方法进行分页。

我也遇到了缓存方面的问题,并且还会欣赏其他人提供的更多信息。