public function segment($num = -1, $page_url = false)
{
$u = false;
if ($page_url == false or $page_url == '') {
$current_url = $this->current();
} else {
$current_url = $page_url;
}
$site_url = $this->site_url();
$site_url = rtrim($site_url, '\\');
$site_url = rtrim($site_url, '/');
$site_url = reduce_double_slashes($site_url);
$site_url = rawurldecode($site_url);
$current_url = rtrim($current_url, '\\');
$current_url = rtrim($current_url, '/');
$current_url = rawurldecode($current_url);
$current_url = str_replace($site_url, '', $current_url);
$current_url = str_replace(' ', '%20', $current_url);
$current_url = reduce_double_slashes($current_url);
if (!isset($u) or $u == false) {
$u = explode('/', trim(preg_replace('/([^\\w\\:\\-\\.\\%\\/])/i', '', current(explode('?', $current_url, 2))), '/'));
if (isset($u[0])) {
//check for port
$string = substr($u[0], 0, 1);
if ($string == ':') {
unset($u[0]);
$u = array_values($u);
}
}
}
if ($num != -1) {
if (isset($u[$num])) {
return $u[$num];
} else {
return;
}
} else {
return $u;
}
}