50 lines
1.6 KiB
PHP
50 lines
1.6 KiB
PHP
|
<?php header("Content-Type: application/rss+xml; charset=ISO-8859-1"); ?>
|
||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||
|
<rss version="2.0">
|
||
|
<channel>
|
||
|
<title>9iron</title>
|
||
|
<link>https://9iron.club/posts</link>
|
||
|
<description>Ramblings of some dumb young admin guy</description>
|
||
|
<language>en-us</language>
|
||
|
<?php
|
||
|
/* Generate feed */
|
||
|
$dir = $_SERVER['DOCUMENT_ROOT']."/posts/";
|
||
|
$posts = scandir($dir, 1);
|
||
|
$ignore = array("index.php", "feed.php", ".", "..");
|
||
|
$extensions = array(".php", ".html", ".htm");
|
||
|
/* Create 25 entries */
|
||
|
foreach (array_slice($posts, 0, 26) as &$post) {
|
||
|
/* Check against blacklist */
|
||
|
if (in_array($post, $ignore)) continue;
|
||
|
$postlocation = $dir.$post;
|
||
|
$posturl = "/posts/".$post;
|
||
|
/* This is a date because I write all my posts as such */
|
||
|
$postdate = pathinfo($postlocation, PATHINFO_FILENAME);
|
||
|
/* Fetch title and summary */
|
||
|
$title = "Title not available";
|
||
|
$summary = "Summary not available";
|
||
|
$dom = new DOMDocument();
|
||
|
if ($dom->loadHTMLFile($postlocation)) {
|
||
|
$xpath_section = new DOMXpath($dom);
|
||
|
/* Get title */
|
||
|
$list = $dom->getElementsByTagName("title");
|
||
|
if ($list->length > 0) $title = $list->item(0)->textContent;
|
||
|
/* Get summary */
|
||
|
$list = $xpath_section->query('//div[@class="section"]//p');
|
||
|
if ($list->length > 0) $summary = $list->item(0)->nodeValue;
|
||
|
}
|
||
|
/* Mark up the data */
|
||
|
$rssfeed .='
|
||
|
<item>
|
||
|
<title>'.$title.'</title>
|
||
|
<description>'.$summary.'</description>
|
||
|
<link>https://www.9iron.club'.$posturl.'</link>
|
||
|
<pubDate>'.date('r', strtotime($postdate)).'</pubDate>
|
||
|
</item>';
|
||
|
}
|
||
|
/* List it */
|
||
|
echo $rssfeed;
|
||
|
?>
|
||
|
</channel>
|
||
|
</rss>
|