From 1b90b8978c08ed50b4dc6c96b8b0787d98cc68a8 Mon Sep 17 00:00:00 2001 From: Max Vogl Date: Mon, 3 Dec 2018 11:55:18 +0100 Subject: [PATCH 1/2] :bug: Fixing problems with spaces in url --- lib/Thumbor/Url.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Thumbor/Url.php b/lib/Thumbor/Url.php index 5a7c0eb..70cc5b0 100755 --- a/lib/Thumbor/Url.php +++ b/lib/Thumbor/Url.php @@ -20,7 +20,7 @@ public function __construct($server, $secret, $original, $commands) { $this->server = $server; $this->secret = $secret; - $this->original = $original; + $this->original = implode('/', array_map('rawurlencode', explode('/', $original))); $this->commands = $commands; } From a31d9e8c38802c05c06b565612191055e563ee55 Mon Sep 17 00:00:00 2001 From: Max Vogl Date: Mon, 3 Dec 2018 14:58:58 +0100 Subject: [PATCH 2/2] :bug: Fixing failing tests --- lib/Thumbor/Url.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/Thumbor/Url.php b/lib/Thumbor/Url.php index 70cc5b0..e0ee559 100755 --- a/lib/Thumbor/Url.php +++ b/lib/Thumbor/Url.php @@ -20,10 +20,29 @@ public function __construct($server, $secret, $original, $commands) { $this->server = $server; $this->secret = $secret; - $this->original = implode('/', array_map('rawurlencode', explode('/', $original))); + $this->original = self::parseOriginalUrl($original); $this->commands = $commands; } + /** + * Produce a encoded URL. + * @param string $original URL of original image + * @return string + */ + private function parseOriginalUrl($original) + { + $scheme = parse_url($original, PHP_URL_SCHEME); + if ($scheme) { + $scheme .= '://'; + $original = str_replace($scheme, '', $original); + } + + $original = implode('/', array_map('rawurlencode', explode('/', $original))); + $original = $scheme . $original; + + return $original; + } + /** * Produce a URL to an image on a Thumbor server according to the specified * options.