31 lines
No EOL
1,009 B
PHP
31 lines
No EOL
1,009 B
PHP
<?php
|
|
namespace feed;
|
|
|
|
require_once "episode.php";
|
|
|
|
class Podcast {
|
|
public string $title;
|
|
public string $desc;
|
|
public array $episodes;
|
|
|
|
function __construct() {
|
|
$xml = $this->parseFeed();
|
|
$this->title = ucfirst(strtolower($xml->channel->title));
|
|
$this->desc = preg_replace("/<br \/>.+<\/p>/", "", $xml->channel->description);
|
|
$this->episodes = array();
|
|
foreach ($xml->channel->item as $epData) {
|
|
array_unshift($this->episodes,new Episode($epData));
|
|
}
|
|
}
|
|
|
|
function parseFeed() {
|
|
// Renew cache if older than 5 minutes
|
|
if (time() - filemtime("tools/podcast.rss") > 5*60) {
|
|
$data = file_get_contents("https://feeds.acast.com/public/shows/le-plus-beau-des-voyages");
|
|
file_put_contents("tools/podcast.rss",$data);
|
|
}
|
|
$cachedFeedData = file_get_contents("tools/podcast.rss");
|
|
return simplexml_load_string($cachedFeedData,'SimpleXMLElement', LIBXML_NOCDATA);;
|
|
}
|
|
}
|
|
?>
|