static function url() { if (self::$current_url === null) { $u = new GBURL(); $u->secure = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'; $u->scheme = $u->secure ? 'https' : 'http'; $u->host = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost'); if (($p = strpos($u->host, ':')) !== false) { $u->port = intval(substr($u->host, $p + 1)); $u->host = substr($u->host, 0, $p); } elseif (isset($_SERVER['SERVER_PORT'])) { $u->port = intval($_SERVER['SERVER_PORT']); } else { $u->port = $u->secure ? 443 : 80; } $u->query = $_GET; $u->path = $u->query ? substr(@$_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?')) : rtrim(@$_SERVER['REQUEST_URI'], '?'); self::$current_url = $u; } return self::$current_url; }