X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNetwork%2FCurlResult.php;h=1aafbfa9b8160d8e8c1f6447080850f9f0f5867f;hb=ad7b85e0ec516bd9a59419ad5aa9e216ecaa8a0a;hp=b2587799d19bdc9b9bc9ac495cbf428a777b9cec;hpb=5437e99090b53c0c8d48c57812211f755fff5800;p=friendica.git diff --git a/src/Network/CurlResult.php b/src/Network/CurlResult.php index b2587799d1..1aafbfa9b8 100644 --- a/src/Network/CurlResult.php +++ b/src/Network/CurlResult.php @@ -161,11 +161,21 @@ class CurlResult if ($this->returnCode == 301 || $this->returnCode == 302 || $this->returnCode == 303 || $this->returnCode== 307) { $redirect_parts = parse_url(defaults($this->info, 'redirect_url', '')); + if (empty($redirect_parts)) { + $redirect_parts = []; + } + if (preg_match('/(Location:|URI:)(.*?)\n/i', $this->header, $matches)) { - $redirect_parts = array_merge($redirect_parts, parse_url(trim(array_pop($matches)))); + $redirect_parts2 = parse_url(trim(array_pop($matches))); + if (!empty($redirect_parts2)) { + $redirect_parts = array_merge($redirect_parts, $redirect_parts2); + } } $parts = parse_url(defaults($this->info, 'url', '')); + if (empty($parts)) { + $parts = []; + } /// @todo Checking the corresponding RFC which parts of a redirect can be ommitted. $components = ['scheme', 'host', 'path', 'query', 'fragment']; @@ -177,7 +187,7 @@ class CurlResult $this->redirectUrl = Network::unparseURL($redirect_parts); - $this->isRedirectUrl = filter_var($this->redirectUrl, FILTER_VALIDATE_URL) !== false; + $this->isRedirectUrl = true; } else { $this->isRedirectUrl = false; }