function parser_simplepie_feedapi_feed in FeedAPI 6
Same name and namespace in other branches
- 5 parser_simplepie/parser_simplepie.module \parser_simplepie_feedapi_feed()
Implementation of hook_feedapi_feed().
File
- parser_simplepie/
parser_simplepie.module, line 39 - Parse the incoming URL with SimplePie then provide a data structure of the feed
Code
function parser_simplepie_feedapi_feed($op) {
$args = func_get_args();
// Validate the URL, if it is not basically valid, why send to simplepie object
$url_parts = parse_url(is_string($args[1]) ? $args[1] : $args[1]->url);
$settings = isset($args[2]) ? $args[2] : array();
$valid_ip_regex = "^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}^";
$op = gethostbyname($url_parts['host']) !== $url_parts['host'] || preg_match($valid_ip_regex, $url_parts['host']) > 0 ? $op : FALSE;
switch ($op) {
case 'type':
return array(
"XML feed",
);
case 'compatible':
// Stop gap for simplefeed.inc version <= 1.1
return "XML feed";
$url = $args[1]->url;
// Here we do not allow caching. Otherwise simplepie's cache prevents FeedAPI to process the feed
$parser = _parser_simplepie_get_parser($url, FALSE);
if ($parser->error) {
return FALSE;
}
return array_shift(parser_simplepie_feedapi_feed('type'));
case 'parse':
$feed = is_object($args[1]) ? $args[1] : FALSE;
return _parser_simplepie_feedapi_parse($feed, $settings);
}
return FALSE;
}