<?php class NasaApodBridge extends BridgeAbstract { const MAINTAINER = 'corenting'; const NAME = 'NASA APOD Bridge'; const URI = 'https://apod.nasa.gov/apod/'; const CACHE_TIMEOUT = 43200; // 12h const DESCRIPTION = 'Returns the 3 latest NASA APOD pictures and explanations'; public function collectData(){ $html = getSimpleHTMLDOM(self::URI . 'archivepix.html') or returnServerError('Error while downloading the website content'); $list = explode('<br>', $html->find('b', 0)->innertext); for($i = 0; $i < 3; $i++) { $line = $list[$i]; $item = array(); $uri_page = $html->find('a', $i + 3)->href; $uri = self::URI . $uri_page; $item['uri'] = $uri; $picture_html = getSimpleHTMLDOM($uri); $picture_html_string = $picture_html->innertext; //Extract image and explanation $media = $picture_html->find('p', 1)->innertext; $media = strstr($media, '<br>'); $media = preg_replace('/<br>/', '', $media, 1); $explanation = $picture_html->find('p', 2)->innertext; //Extract date from the picture page $date = explode(' ', $picture_html->find('p', 1)->innertext); $item['timestamp'] = strtotime($date[4] . $date[3] . $date[2]); //Other informations $item['content'] = $media . '<br />' . $explanation; $item['title'] = $picture_html->find('b', 0)->innertext; $this->items[] = $item; } } }