From: Antonio Ospite Date: Mon, 23 May 2016 13:32:27 +0000 (+0200) Subject: tweeper.php: fix a problem with https URLs ending up in the enclosure element X-Git-Tag: v0.6~4 X-Git-Url: https://git.ao2.it/tweeper.git/commitdiff_plain/60ffa4f7f61cb8c815244644c633d84646d21104?hp=47350899b24fb9a79bd9f57bcabc7281b9a01e34 tweeper.php: fix a problem with https URLs ending up in the enclosure element When the remote host forces every URLs to be redirected to https, the info returned by Tweeper::getUrlInfo() would contain an https URL, which will end up being used in the "url" attribute of the enclosure element, and this is invalid according to the RSS specification. So make sure that an http URL is actually used for the "url" attribute. --- diff --git a/tweeper.php b/tweeper.php index f7e0a88..94ea05f 100644 --- a/tweeper.php +++ b/tweeper.php @@ -139,11 +139,7 @@ class Tweeper { "video/ogg", ); - // The RSS specification says that the enclosure element URL must be http. - // See http://sourceforge.net/p/feedvalidator/bugs/72/ - $http_url = preg_replace("/^https/", "http", $url); - - $url_info = Tweeper::getUrlInfo($http_url); + $url_info = Tweeper::getUrlInfo($url); $supported = in_array($url_info['content_type'], $supported_content_types); if (!$supported) { @@ -151,9 +147,13 @@ class Tweeper { return ''; } + // The RSS specification says that the enclosure element URL must be http. + // See http://sourceforge.net/p/feedvalidator/bugs/72/ + $http_url = preg_replace("/^https/", "http", $url_info['url']); + $dom = new DOMDocument(); $enc = $dom->createElement('enclosure'); - $enc->setAttribute('url', $url_info['url']); + $enc->setAttribute('url', $http_url); $enc->setAttribute('length', $url_info['download_content_length']); $enc->setAttribute('type', $url_info['content_type']);