From: Antonio Ospite Date: Fri, 16 Nov 2018 22:06:38 +0000 (+0100) Subject: src/Tweeper.php: make enclosure validate when there is no Content-Length X-Git-Tag: v1.4.0~1 X-Git-Url: https://git.ao2.it/tweeper.git/commitdiff_plain/f907de7cf25707848bee5c637dc440cb26714ffd src/Tweeper.php: make enclosure validate when there is no Content-Length When the server does not provide a Content-Length header, curl_getinfo() would return a negative value for "download_content_length". However RSS recommends to use 0 when the enclosure's size cannot be determined. See: https://www.feedvalidator.org/docs/error/UseZeroForUnknown.html --- diff --git a/src/Tweeper.php b/src/Tweeper.php index 8fda9b1..09bd7cc 100644 --- a/src/Tweeper.php +++ b/src/Tweeper.php @@ -206,10 +206,17 @@ class Tweeper { // See http://sourceforge.net/p/feedvalidator/bugs/72/ $http_url = preg_replace("/^https/", "http", $url_info['url']); + // When the server does not provide a Content-Length header, + // curl_getinfo() would return a negative value for + // "download_content_length", however RSS recommends to use 0 when the + // enclosure's size cannot be determined. + // See: https://www.feedvalidator.org/docs/error/UseZeroForUnknown.html + $length = max($url_info['download_content_length'], 0); + $dom = new DOMDocument(); $enc = $dom->createElement('enclosure'); $enc->setAttribute('url', $http_url); - $enc->setAttribute('length', $url_info['download_content_length']); + $enc->setAttribute('length', $length); $enc->setAttribute('type', $url_info['content_type']); return $enc;