summaryrefslogtreecommitdiffstats
path: root/src/Modifier/StreamFilter.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Modifier/StreamFilter.php')
-rw-r--r--src/Modifier/StreamFilter.php10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Modifier/StreamFilter.php b/src/Modifier/StreamFilter.php
index 030523a..e07d2bc 100644
--- a/src/Modifier/StreamFilter.php
+++ b/src/Modifier/StreamFilter.php
@@ -83,7 +83,7 @@ trait StreamFilter
return;
}
$this->stream_uri = $matches['resource'];
- $this->stream_filters = explode('|', $matches['filters']);
+ $this->stream_filters = array_map('urldecode', explode('|', $matches['filters']));
$this->stream_filter_mode = $this->fetchStreamModeAsInt($matches['mode']);
}
@@ -209,7 +209,7 @@ trait StreamFilter
{
$this->assertStreamable();
- return $this->validateString($filter_name);
+ return urldecode($this->validateString($filter_name));
}
/**
@@ -228,7 +228,7 @@ trait StreamFilter
{
$this->assertStreamable();
- return false !== array_search($filter_name, $this->stream_filters, true);
+ return false !== array_search(urldecode($filter_name), $this->stream_filters, true);
}
/**
@@ -241,7 +241,7 @@ trait StreamFilter
public function removeStreamFilter($filter_name)
{
$this->assertStreamable();
- $res = array_search($filter_name, $this->stream_filters, true);
+ $res = array_search(urldecode($filter_name), $this->stream_filters, true);
if (false !== $res) {
unset($this->stream_filters[$res]);
}
@@ -276,7 +276,7 @@ trait StreamFilter
return 'php://filter/'
.$this->getStreamFilterPrefix()
- .implode('|', $this->stream_filters)
+ .implode('|', array_map('urlencode', $this->stream_filters))
.'/resource='.$this->stream_uri;
}