如何每6小时保存一次RSS源并将其重命名为当前日期?

Ene*_*oma 1 php xml cron

我在我的网站上显示了一些RSS源,我将它们放在一个数组中.我正在研究如何通过创建前一天的存档系统来改进脚本,并将我使用的RSS源保存到文件夹中以供进一步使用.

我所知道的是显示按日期排序的Feed的帖子.我不知道的是如何在我拥有脚本的同一个文件夹中保存一系列RSS提要.我不介意这份工作是通过cron制作还是由我手工制作.

也许解决方案是创建一个包含所有组合的源的单个源,这些源将由脚本以日期格式结构(如11072011.xml)重命名

6小时后,将有一个必须保存的新饲料.因此,要么将结合到前一个(我不介意是否有相同的条目)或系统必须创建一个名为110720112.xml的新文件(2是增量编号),其中包含我的feeds数组的所有帖子.

如果这是解决方案的方式(而不是它们的组合),则第一个XML文件的末尾编号应为110720111.xml,以此类推,以便进行排序.

我想象的是在代码中使用我使用的所有rss提要并创建一个将它们保存到同一文件夹中的cron作业.

我知道怎么用

file_get_contents();file_put_contents();只是一点关于他们之间.

感谢您的示例,代码,链接和想法

bob*_*yer 6

合并饲料内容可能不值得,因为它可能会破坏xml结构.所以,这是一个快速脚本,每天使用增量名称存档到单独的文件中......

$rssContents = file_get_contents('http://url/for/rss');
$arcPath = '/path/to/archive/folder/';
$fileBaseName = date('mdY');
$x = 1;

while (file_exists($arcPath . $fileBaseName . $x . '.xml')) {
    $x++;
}
file_put_contents($arcPath . $fileBaseName . $x . '.xml', $rssContents);
Run Code Online (Sandbox Code Playgroud)

您可以每六个小时将其作为一个cron作业运行.您还应该添加错误测试,以确保从rss url检索内容,并且存档目录存在.您可能还想添加一些内容来删除旧文件(可能是+30天),以避免使目录混乱.

  • 我为挑剔而道歉 - 但你应该小心这一点.如果提供RSS源的服务器死机,您的服务器就会哭.可能值得使用CURL并设置超时.(使用stream_context_create也可以使用file_get_contents设置一个) (2认同)