[PHP-WEBMASTER] [web-news] master: Cache RSS feeds for 30 minutes

Author: Derick Rethans (derickr)
Date: 2026-10-06T13:03:21+01:00

Commit: Cache RSS feeds for 30 minutes · php/web-news@10d2e56 · GitHub
Raw diff: <?php echo $cleanBaseHost; ?>: <?php echo $cleanGroupHtml?>

Cache RSS feeds for 30 minutes

Changed paths:
  M group.php
  M lib/common.php

Diff:

diff --git a/group.php b/group.php
index fee98b1..de571f8 100644
--- a/group.php
+++ b/group.php
@@ -37,9 +37,10 @@
switch ($format) {
     case 'rss':
         header("Content-type: text/xml");
+ cacheHeader(60 * 30);
         echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";?>
<rss version="2.0">
- <channel>
+ <channel>
   <title><?php echo $cleanBaseHost; ?>: <?php echo $cleanGroupHtml?></title>
   <link><?php echo $cleanBaseUrl; ?>/group.php?group=<?php echo $cleanGroupUrl?></link>
   <description></description>
@@ -47,6 +48,7 @@
         break;
     case 'rdf':
         header("Content-type: text/xml");
+ cacheHeader(60 * 30);
         echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
         ?>
<rdf:RDF
diff --git a/lib/common.php b/lib/common.php
index b94e4bb..1c1ef42 100644
--- a/lib/common.php
+++ b/lib/common.php
@@ -102,10 +102,15 @@ function posttohost($url, $data)
     return file_get_contents($url, false, $ctx);
}

+function cacheHeader(int $cacheTimeSeconds = 180)
+{
+ header("Cache-Control: public, max-age={$cacheTimeSeconds}");
+}
+
function head($title = "PHP Mailing Lists (PHP News)", int $cacheTimeSeconds = 180)
{
     header("Content-type: text/html; charset=utf-8");
- header("Cache-Control: public, max-age={$cacheTimeSeconds}");
+ cacheHeader($cacheTimeSeconds);

     ?>
<!doctype html>