<?php class NeuviemeArtBridge extends BridgeAbstract { const MAINTAINER = "ORelio"; const NAME = '9ème Art Bridge'; const URI = "http://www.9emeart.fr/"; const DESCRIPTION = "Returns the newest articles."; public function collectData(){ function StripWithDelimiters($string, $start, $end) { while (strpos($string, $start) !== false) { $section_to_remove = substr($string, strpos($string, $start)); $section_to_remove = substr($section_to_remove, 0, strpos($section_to_remove, $end) + strlen($end)); $string = str_replace($section_to_remove, '', $string); } return $string; } $feedUrl = self::URI.'9emeart.rss'; $html = $this->getSimpleHTMLDOM($feedUrl) or $this->returnServerError('Could not request 9eme Art: '.$feedUrl); $limit = 0; foreach ($html->find('item') as $element) { if ($limit < 5) { //Retrieve article Uri and get that page $article_uri = $element->find('guid', 0)->plaintext; $article_html = $this->getSimpleHTMLDOM($article_uri) or $this->returnServerError('Could not request 9eme Art: '.$article_uri); //Build article contents from corresponding elements $article_title = trim($element->find('title', 0)->plaintext); $article_image = $element->find('enclosure', 0)->url; foreach ($article_html->find('img.img_full') as $img) if ($img->alt == $article_title) $article_image = self::URI.$img->src; $article_content = '<p><img src="'.$article_image.'" /></p>' .str_replace('src="/', 'src="'.self::URI, $article_html->find('div.newsGenerique_con', 0)->innertext); $article_content = StripWithDelimiters($article_content, '<script', '</script>'); $article_content = StripWithDelimiters($article_content, '<style', '</style>'); $article_content = StripWithDelimiters($article_content, '<link', '>'); //Build and add final item $item = array(); $item['uri'] = $article_uri; $item['title'] = $article_title; $item['author'] = $article_html->find('a[class=upp transition_fast upp]', 0)->plaintext; $item['timestamp'] = strtotime($element->find('pubDate', 0)->plaintext); $item['content'] = $article_content; $this->items[] = $item; $limit++; } } } }