public static function formatPath(string $path, bool $ignoreLastSlash = true): string
    {
        if ($path === '/') {
            return '/';
        }

        // Clear '//', '///' => '/'
        if (false !== \strpos($path, '//')) {
            $path = \preg_replace('#\/\/+#', '/', $path);
        }

        // Must be start withs '/'
        if (\strpos($path, '/') !== 0) {
            $path = '/' . $path;
        }

        // Decode
        $path = \rawurldecode($path);

        return $ignoreLastSlash ? \rtrim($path, '/') : $path;
    }
public static function formatPath(string $path, bool $ignoreLastSlash = true): string
    {
        if ($path === '/') {
            return '/';
        }

        // Clear '//', '///' => '/'
        if (false !== \strpos($path, '//')) {
            $path = \preg_replace('#\/\/+#', '/', $path);
        }

        // Must be start withs '/'
        if (\strpos($path, '/') !== 0) {
            $path = '/' . $path;
        }

        // Decode
        $path = \rawurldecode($path);

        return $ignoreLastSlash ? \rtrim($path, '/') : $path;
    }
public static function formatPath ( string $ path , bool $ ignoreLastSlash = true ) : string { if ( $ path === '/' ) { return '/' ; } // Clear '//', '///' => '/' if ( false !== \ strpos ( $ path , '//' ) ) { $ path = \ preg_replace ( '#\/\/+#' , '/' , $ path ) ; } // Must be start withs '/' if ( \ strpos ( $ path , '/' ) !== 0 ) { $ path = '/' . $ path ; } // Decode $ path = \ rawurldecode ( $ path ) ; return $ ignoreLastSlash ? \ rtrim ( $ path , '/' ) : $ path ; }
format URI path
@param string $path
@param bool   $ignoreLastSlash
@return string
format URI path