summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--system/core/URI.php20
1 files changed, 13 insertions, 7 deletions
diff --git a/system/core/URI.php b/system/core/URI.php
index 3f8775d4e..07add5a4d 100644
--- a/system/core/URI.php
+++ b/system/core/URI.php
@@ -219,23 +219,29 @@ class CI_URI {
}
// Do some final cleaning of the URI and return it
- return $this->_remove_relative_directory_str($uri);
+ return $this->_remove_relative_directory($uri);
}
// --------------------------------------------------------------------
/**
* Remove relative directory (../) and multi slashes (///)
- * @param string $url
- * @return string
+ *
+ * Do some final cleaning of the URI and return it, currently only used in self::_parse_request_uri()
+ *
+ * @param string $url
+ * @return string
*/
- private function _remove_relative_directory_str($url)
+ protected function _remove_relative_directory($uri)
{
$uris = array();
- $tok = strtok($url, '/');
- while ($tok !== false)
+ $tok = strtok($uri, '/');
+ while ($tok !== FALSE)
{
- ($tok != '..' && ! empty($tok) || $tok === '0') && $uris[] = $tok;
+ if (( ! empty($tok) OR $tok === '0') && $tok !== '..')
+ {
+ $uris[] = $tok;
+ }
$tok = strtok('/');
}
return implode('/', $uris);