build_array(URI::$segments, $offset, $associative); } public function rsegment_array($offset = 0, $associative = FALSE) { return $this->build_array(URI::$rsegments, $offset, $associative); } public function argument_array($offset = 0, $associative = FALSE) { return $this->build_array(URI::$arguments, $offset, $associative); } public function build_array($array, $offset = 0, $associative = FALSE) { array_unshift($array, 0); $array = array_slice($array, $offset + 1, count($array) - 1, TRUE); if ($associative === FALSE) return $array; $associative = array(); $pairs = array_chunk($array, 2); foreach ($pairs as $pair) { $associative[$pair[0]] = isset($pair[1]) ? $pair[1] : ''; } return $associative; } public static function string() { return URI::$current_uri; } public function __toString() { return URI::$current_uri; } public function total_segments() { return count(URI::$segments); } public function total_rsegments() { return count(URI::$rsegments); } public function total_arguments() { return count(URI::$arguments); } public function last_segment($default = FALSE) { if (($end = $this->total_segments()) < 1) return $default; return URI::$segments[$end - 1]; } public function last_rsegment($default = FALSE) { if (($end = $this->total_segments()) < 1) return $default; return URI::$rsegments[$end - 1]; } public function controller_path($full = TRUE) { return ($full) ? url::site(URI::$controller_path) : URI::$controller_path; } public function controller($full = TRUE) { return ($full) ? url::site(URI::$controller_path.URI::$controller) : URI::$controller; } public function method($full = TRUE) { return ($full) ? url::site(URI::$controller_path.URI::$controller.'/'.URI::$method) : URI::$method; } }