phpuri.php
public function join( $relative )
		{
			$uri = new phpUri( $relative );
			switch ( TRUE )
			{
				case !empty( $uri->scheme ):
					break;

				case !empty( $uri->authority ):
					break;

				case empty( $uri->path ):
					$uri->path = $this->path;
					if ( empty( $uri->query ) )
					{
						$uri->query = $this->query;
					}
					break;

				case strpos( $uri->path, '/' ) === 0:
					break;

				default:
					$base_path = $this->path;
					if ( strpos( $base_path, '/' ) === FALSE )
					{
						$base_path = '';
					}
					else
					{
						$base_path = preg_replace( '/\/[^\/]+$/', '/', $base_path );
					}
					if ( empty( $base_path ) && empty( $this->authority ) )
					{
						$base_path = '/';
					}
					$uri->path = $base_path . $uri->path;
			}

			if ( empty( $uri->scheme ) )
			{
				$uri->scheme = $this->scheme;
				if ( empty( $uri->authority ) )
				{
					$uri->authority = $this->authority;
				}
			}

			return $uri->to_str();
		}
public function join( $relative )
		{
			$uri = new phpUri( $relative );
			switch ( TRUE )
			{
				case !empty( $uri->scheme ):
					break;

				case !empty( $uri->authority ):
					break;

				case empty( $uri->path ):
					$uri->path = $this->path;
					if ( empty( $uri->query ) )
					{
						$uri->query = $this->query;
					}
					break;

				case strpos( $uri->path, '/' ) === 0:
					break;

				default:
					$base_path = $this->path;
					if ( strpos( $base_path, '/' ) === FALSE )
					{
						$base_path = '';
					}
					else
					{
						$base_path = preg_replace( '/\/[^\/]+$/', '/', $base_path );
					}
					if ( empty( $base_path ) && empty( $this->authority ) )
					{
						$base_path = '/';
					}
					$uri->path = $base_path . $uri->path;
			}

			if ( empty( $uri->scheme ) )
			{
				$uri->scheme = $this->scheme;
				if ( empty( $uri->authority ) )
				{
					$uri->authority = $this->authority;
				}
			}

			return $uri->to_str();
		}
public function join ( $ relative ) { $ uri = new phpUri ( $ relative ) ; switch ( TRUE ) { case ! empty ( $ uri -> scheme ) : break ; case ! empty ( $ uri -> authority ) : break ; case empty ( $ uri -> path ) : $ uri -> path = $ this -> path ; if ( empty ( $ uri -> query ) ) { $ uri -> query = $ this -> query ; } break ; case strpos ( $ uri -> path , '/' ) === 0 : break ; default : $ base_path = $ this -> path ; if ( strpos ( $ base_path , '/' ) === FALSE ) { $ base_path = '' ; } else { $ base_path = preg_replace ( '/\/[^\/]+$/' , '/' , $ base_path ) ; } if ( empty ( $ base_path ) && empty ( $ this -> authority ) ) { $ base_path = '/' ; } $ uri -> path = $ base_path . $ uri -> path ; } if ( empty ( $ uri -> scheme ) ) { $ uri -> scheme = $ this -> scheme ; if ( empty ( $ uri -> authority ) ) { $ uri -> authority = $ this -> authority ; } } return $ uri -> to_str ( ) ; }
Join with a relative url

@param string $relative the relative url to join

@return string
Join with a relative url