123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php namespace Laravel;
- class URI {
-
- public static $uri;
-
- public static $segments = array();
-
- public static function current()
- {
- if ( ! is_null(static::$uri)) return static::$uri;
- $uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
-
-
-
- $uri = static::remove($uri, parse_url(URL::base(), PHP_URL_PATH));
-
-
-
- if (($index = '/'.Config::get('application.index')) !== '/')
- {
- $uri = static::remove($uri, $index);
- }
- static::$uri = static::format($uri);
-
-
-
-
- $segments = explode('/', trim(static::$uri, '/'));
- static::$segments = array_diff($segments, array(''));
- return static::$uri;
- }
-
- public static function segment($index, $default = null)
- {
- static::current();
- return array_get(static::$segments, $index - 1, $default);
- }
-
- protected static function remove($uri, $value)
- {
- return (strpos($uri, $value) === 0) ? substr($uri, strlen($value)) : $uri;
- }
-
- protected static function format($uri)
- {
- return (($uri = trim($uri, '/')) !== '') ? $uri : '/';
- }
- }
|