public static function fix_protocol($url, $http = 1) { $url = SimplePie_Misc::normalize_url($url); $parsed = SimplePie_Misc::parse_url($url); if ($parsed['scheme'] !== '' && $parsed['scheme'] !== 'http' && $parsed['scheme'] !== 'https') { return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http); } if ($parsed['scheme'] === '' && $parsed['authority'] === '' && !file_exists($url)) { return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['path'], '', $parsed['query'], $parsed['fragment']), $http); } if ($http === 2 && $parsed['scheme'] !== '') { return "feed:{$url}"; } elseif ($http === 3 && strtolower($parsed['scheme']) === 'http') { return substr_replace($url, 'podcast', 0, 4); } elseif ($http === 4 && strtolower($parsed['scheme']) === 'http') { return substr_replace($url, 'itpc', 0, 4); } else { return $url; } }
function fix_protocol($url, $http = 1) { $parsed = SimplePie_Misc::parse_url($url); if (!empty($parsed['scheme']) && strtolower($parsed['scheme']) != 'http' && strtolower($parsed['scheme']) != 'https') { return SimplePie_Misc::fix_protocol("{$parsed['authority']}{$parsed['path']}{$parsed['query']}{$parsed['fragment']}", $http); } if (!file_exists($url) && empty($parsed['scheme'])) { return SimplePie_Misc::fix_protocol("http://{$url}", $http); } if ($http == 2 && !empty($parsed['scheme'])) { return "feed:{$url}"; } else { if ($http == 3 && strtolower($parsed['scheme']) == 'http') { return substr_replace($url, 'podcast', 0, 4); } else { return $url; } } }
/** * This is the URL of the feed you want to parse. * * This allows you to enter the URL of the feed you want to parse, or the * website you want to try to use auto-discovery on. This takes priority * over any set raw data. * * You can set multiple feeds to mash together by passing an array instead * of a string for the $url. Remember that with each additional feed comes * additional processing and resources. * * @access public * @since 1.0 Preview Release * @param mixed $url This is the URL (or array of URLs) that you want to parse. * @see SimplePie::set_raw_data() */ public function set_feed_url($url) { if (is_array($url)) { $this->multifeed_url = array(); foreach ($url as $value) { $this->multifeed_url[] = SimplePie_Misc::fix_protocol($value, 1); } } else { $this->feed_url = SimplePie_Misc::fix_protocol($url, 1); } }
function fix_protocol($url, $http = 1) { $url = SimplePie_Misc::normalize_url($url); $parsed = SimplePie_Misc::parse_url($url); if (!empty($parsed['scheme']) && !preg_match('/^http(s)?$/i', $parsed['scheme'])) { return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http); } if (!file_exists($url) && empty($parsed['scheme'])) { return SimplePie_Misc::fix_protocol("http://{$url}", $http); } if ($http == 2 && !empty($parsed['scheme'])) { return "feed:{$url}"; } elseif ($http == 3 && strtolower($parsed['scheme']) == 'http') { return substr_replace($url, 'podcast', 0, 4); } elseif ($http == 4 && strtolower($parsed['scheme']) == 'http') { return substr_replace($url, 'itpc', 0, 4); } else { return $url; } }