diff options
-rw-r--r-- | system/core/URI.php | 20 |
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); |