<?php 
/**
* 
*/
class URI
{
    function _fetch_uri_string()    
    {
        if(strtoupper($uri_protocol) == 'AUTO')
        {
            if(php_sapi_name() == 'cli')
            {
                return;
            }

            $path = (isset($_SERVER['PATH_INFO']))?$_SERVER['PATH_INFO']:@getenv('PATH_INFO');

            $path = (isset($_SERVER['QUERY_STRING']))?$_SERVER['QUERY_STRING']:@getenv('QUERY_STRING');

            if(is_array($_GET) && count($_GET) == 1 && trim(key($_GET),'/') != '')
            {
                key($_GET);
            }

            if(!isset($_SERVER['REQUEST_URI']) OR !isset($_SERVER['SCRIPT_NAME']))
            {
                return '';
            }
            $uri = $_SERVER['REQUEST_URI'];
            if (strpos($uri, $_SERVER['SCRIPT_NAME']) == 0) {
                $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME'])));
            }
            if(strncmp($uri, '?/', 2) === 0)
            {
                $uri = substr($uri, 2);
            }
            $parts = preg_split('#\?#i', $uri, 2);
            $uri = $parts[0];
            if(isset($parts[1]))
            {
                $_SERVER['QUERY_STRING'] = $parts[1];
                parse_str($_SERVER['QUERY_STRING'], $_GET);
            }
            
            $uri = parse_url($uri, PHP_URL_PATH);

            return str_replace(array('//', './'), '/', trim($uri, '/'));
        }
    }
    private function _parse_cli_args()
    {
        $args = array_slice($_SERVER['argv'], 1);
        $uri_string = preg_replace('|'.preg_quote($suffix).'$|', '', $uri);
        return $args?'/'.implode('/', $args):'';
    }

    function _reindex_segments()
    {
        array_unshift($segments, NULL);
        unset($segments[0]);
    }
}