<?php

error_reporting
(0);

define('RSS_ITEMS', 5);
define('RSS_TTL', 180);

define('RSS_FILE', './rowingservice2.xml');
define('RSS_SOURCE', './rowingservice.xml');
define('RSS_GENERATOR', 'http://www.usrtriton.nl/rowingservice/rss.php');

define('RSS_HEADER', 'Content-type: application/xml; charset=UTF-8');
define('RSS_HEADERSIZE', 14);
define('RSS_ITEMSIZE', 7);
define('RSS_FOOTERSIZE', 2);

clearstatcache();
if (
file_exists(RSS_FILE) && file_exists(RSS_SOURCE) && filemtime(RSS_FILE) >= filemtime(RSS_SOURCE) )
{
    
header(RSS_HEADER);
    
readfile(RSS_FILE);
    exit();
}

if (
file_exists(RSS_SOURCE) && time() - filemtime(RSS_SOURCE) < RSS_TTL * 60 )
    
$rss = file(RSS_SOURCE);
else
    
$rss = file(RSS_GENERATOR);

$header = array_slice($rss, 0, RSS_HEADERSIZE);
$items = array_slice($rss, RSS_HEADERSIZE, RSS_ITEMS * RSS_ITEMSIZE);
$footer = array_slice($rss, -RSS_FOOTERSIZE);

$deletelines = array(5, 6, 8, 10, 11, 12, 13);
foreach (
$deletelines as $linenumber )
    unset(
$header[$linenumber]);

for (
$i = 0; $i < RSS_ITEMS; ++$i )
{
    
$offset = $i * RSS_ITEMSIZE;
    unset(
$items[$offset + 3]);
    unset(
$items[$offset + 4]);
    unset(
$items[$offset + 5]);
}

$rss = implode('', $header).implode('', $items).implode('', $footer);

if (
$fp = fopen(RSS_FILE, 'wb') )
{
    
fwrite($fp, $rss);
    
fclose($fp);
    
chmod(RSS_FILE, 0666);
}

header(RSS_HEADER);
echo
$rss;

?>