public function getCurrentURI($extra_params = array(), $drop_params = array()) {
        $drop_params = array_merge(self::$DROP_QUERY_PARAMS, $drop_params);

        $server_https = $this->_getServerParam('HTTPS');
        $server_http_host = $this->_getServerParam('HTTP_HOST') ?: '';
        $server_request_uri = $this->_getServerParam('REQUEST_URI') ?: '';

        $protocol = isset($server_https) && $server_https == 'on' ? 'https://' : 'http://';
        $currentUrl = $protocol . $server_http_host  . $server_request_uri;
        $parts = parse_url($currentUrl);
        // drop known params
        $query = '';
        if (!empty($parts['query'])) {
            $params = array();
            parse_str($parts['query'], $params);
            $params = array_merge($params, $extra_params);
            //print_r($params);
            foreach ($drop_params as $key) {
                unset($params[$key]);
            }
            if (!empty($params)) {
                $query = '?' . http_build_query($params, null, $this->argSeparator);
            }
        } elseif (!empty($extra_params)) {
            $query = '?' . http_build_query($extra_params, null, $this->argSeparator);
        }
        // use port if non default
        $port = isset($parts['port']) && (($protocol === 'http://' && $parts['port'] !== 80) || ($protocol === 'https://' && $parts['port'] !== 443)) ? ':' . $parts['port'] : '';
        // rebuild
        return $protocol . (isset($parts['host'])?$parts['host']:'') . $port . (isset($parts['path'])?$parts['path']:'') . $query;
    }
public function getCurrentURI($extra_params = array(), $drop_params = array()) {
        $drop_params = array_merge(self::$DROP_QUERY_PARAMS, $drop_params);

        $server_https = $this->_getServerParam('HTTPS');
        $server_http_host = $this->_getServerParam('HTTP_HOST') ?: '';
        $server_request_uri = $this->_getServerParam('REQUEST_URI') ?: '';

        $protocol = isset($server_https) && $server_https == 'on' ? 'https://' : 'http://';
        $currentUrl = $protocol . $server_http_host  . $server_request_uri;
        $parts = parse_url($currentUrl);
        // drop known params
        $query = '';
        if (!empty($parts['query'])) {
            $params = array();
            parse_str($parts['query'], $params);
            $params = array_merge($params, $extra_params);
            //print_r($params);
            foreach ($drop_params as $key) {
                unset($params[$key]);
            }
            if (!empty($params)) {
                $query = '?' . http_build_query($params, null, $this->argSeparator);
            }
        } elseif (!empty($extra_params)) {
            $query = '?' . http_build_query($extra_params, null, $this->argSeparator);
        }
        // use port if non default
        $port = isset($parts['port']) && (($protocol === 'http://' && $parts['port'] !== 80) || ($protocol === 'https://' && $parts['port'] !== 443)) ? ':' . $parts['port'] : '';
        // rebuild
        return $protocol . (isset($parts['host'])?$parts['host']:'') . $port . (isset($parts['path'])?$parts['path']:'') . $query;
    }
public function getCurrentURI ( $ extra_params = array ( ) , $ drop_params = array ( ) ) { $ drop_params = array_merge ( self :: $ DROP_QUERY_PARAMS , $ drop_params ) ; $ server_https = $ this -> _getServerParam ( 'HTTPS' ) ; $ server_http_host = $ this -> _getServerParam ( 'HTTP_HOST' ) ? : '' ; $ server_request_uri = $ this -> _getServerParam ( 'REQUEST_URI' ) ? : '' ; $ protocol = isset ( $ server_https ) && $ server_https == 'on' ? 'https://' : 'http://' ; $ currentUrl = $ protocol . $ server_http_host . $ server_request_uri ; $ parts = parse_url ( $ currentUrl ) ; // drop known params $ query = '' ; if ( ! empty ( $ parts [ 'query' ] ) ) { $ params = array ( ) ; parse_str ( $ parts [ 'query' ] , $ params ) ; $ params = array_merge ( $ params , $ extra_params ) ; //print_r($params); foreach ( $ drop_params as $ key ) { unset ( $ params [ $ key ] ) ; } if ( ! empty ( $ params ) ) { $ query = '?' . http_build_query ( $ params , null , $ this -> argSeparator ) ; } } elseif ( ! empty ( $ extra_params ) ) { $ query = '?' . http_build_query ( $ extra_params , null , $ this -> argSeparator ) ; } // use port if non default $ port = isset ( $ parts [ 'port' ] ) && ( ( $ protocol === 'http://' && $ parts [ 'port' ] !== 80 ) || ( $ protocol === 'https://' && $ parts [ 'port' ] !== 443 ) ) ? ':' . $ parts [ 'port' ] : '' ; // rebuild return $ protocol . ( isset ( $ parts [ 'host' ] ) ? $ parts [ 'host' ] : '' ) . $ port . ( isset ( $ parts [ 'path' ] ) ? $ parts [ 'path' ] : '' ) . $ query ; }
Returns the Current URI, stripping it of known parameters that should
not persist.

@param array $extra_params
@param array $drop_params
@return string the current URI
Returns the Current URI stripping it of known parameters that should not persist .