diff options
author | emkael <emkael@tlen.pl> | 2019-01-31 17:43:10 +0100 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2019-01-31 19:41:51 +0100 |
commit | 5df7a81d952c9aed7c9adadadecdeb84f1e5c264 (patch) | |
tree | b357b463e2d29628cd1739cd442c956b0be79d15 /providers/XmlFeed.php | |
parent | 4ec34ae1ea35a21d569115cd0e98450d084e5ac4 (diff) |
Universal classes for XML/HTML scraping
Diffstat (limited to 'providers/XmlFeed.php')
-rw-r--r-- | providers/XmlFeed.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/providers/XmlFeed.php b/providers/XmlFeed.php new file mode 100644 index 0000000..d5ecd1c --- /dev/null +++ b/providers/XmlFeed.php @@ -0,0 +1,39 @@ +<?php + +namespace Providers; + +require_once('Provider.php'); + +abstract class XmlFeed extends \Providers\Provider { + + protected $_feedUrl; + protected $_feedXml; + + abstract protected function _getFeedUrl($feed); + + public function __construct($feed, $options=[]) { + parent::__construct($feed, $options); + $this->_feedUrl = $this->_getFeedUrl($feed); + if (!$this->_feedUrl) { + throw new Exception('XML feed "' . $feed . '" undefined'); + } + } + + abstract protected function _parseFeedContent($feed); + + protected function _fetchItems() { + $this->_feedXml = new \SimpleXMLElement($this->_feedUrl, 0, TRUE); + return $this->_parseFeedContent($this->_feedXml); + } + + protected function _spamFilter($content) { + return $content; + } + + protected function _sortContent($content) { + return $content; + } + +} + +?> |