From 4a001f3594d3e94aa40d01b04545d83934d6f063 Mon Sep 17 00:00:00 2001 From: logmanoriginal Date: Tue, 2 Aug 2016 12:27:44 +0200 Subject: [PATCH] Replace relative image paths with absolute URL Images from their own servers are linked relatively via 'local/...' we must replace this for images to point to the correct destination. --- bridges/BastaBridge.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/bridges/BastaBridge.php b/bridges/BastaBridge.php index 0dd0252f..acdcd67b 100644 --- a/bridges/BastaBridge.php +++ b/bridges/BastaBridge.php @@ -9,18 +9,23 @@ class BastaBridge extends BridgeAbstract{ } public function collectData(array $param){ + // Replaces all relative image URLs by absolute URLs. Relative URLs always start with 'local/'! + function ReplaceImageUrl($content){ + return preg_replace('/src=["\']{1}([^"\']+)/ims', 'src=\'http://www.bastamag.net/$1\'', $content); + } + $html = $this->file_get_html('http://www.bastamag.net/spip.php?page=backend') or $this->returnError('Could not request Bastamag.', 404); $limit = 0; foreach($html->find('item') as $element) { if($limit < 10) { - $item = new \Item(); - $item->title = $element->find('title', 0)->innertext; - $item->uri = $element->find('guid', 0)->plaintext; - $item->timestamp = strtotime($element->find('dc:date', 0)->plaintext); - $item->content = $this->file_get_html($item->uri)->find('div.texte', 0)->innertext; - $this->items[] = $item; - $limit++; + $item = new \Item(); + $item->title = $element->find('title', 0)->innertext; + $item->uri = $element->find('guid', 0)->plaintext; + $item->timestamp = strtotime($element->find('dc:date', 0)->plaintext); + $item->content = ReplaceImageUrl($this->file_get_html($item->uri)->find('div.texte', 0)->innertext); + $this->items[] = $item; + $limit++; } } }