WP_CLI\Utils
parse_ssh_url()
Parse a SSH url for its host, port, and path.
Similar to parse_url(), but adds support for defined SSH aliases.
host OR host/path/to/wordpress OR host:port/path/to/wordpress
Хуков нет.
Возвращает
Разное.
Использование
parse_ssh_url( $url, $component );
- $url(строка) (обязательный)
- .
- $component(int)
- .
По умолчанию:-1
Код parse_ssh_url() parse ssh url WP-CLI 2.13.0-alpha
function parse_ssh_url( $url, $component = -1 ) {
preg_match( '#^((docker|docker\-compose|docker\-compose\-run|ssh|vagrant):)?(([^@:]+)@)?([^:/~]+)(:([\d]*))?((/|~)(.+))?$#', $url, $matches );
$bits = [];
foreach ( [
2 => 'scheme',
4 => 'user',
5 => 'host',
7 => 'port',
8 => 'path',
] as $i => $key ) {
if ( ! empty( $matches[ $i ] ) ) {
$bits[ $key ] = $matches[ $i ];
}
}
// Find the hostname from `vagrant ssh-config` automatically.
if ( preg_match( '/^vagrant:?/', $url ) ) {
if ( 'vagrant' === $bits['host'] && empty( $bits['scheme'] ) ) {
$bits['scheme'] = 'vagrant';
$bits['host'] = '';
}
}
switch ( $component ) {
case PHP_URL_SCHEME:
return isset( $bits['scheme'] ) ? $bits['scheme'] : null;
case PHP_URL_USER:
return isset( $bits['user'] ) ? $bits['user'] : null;
case PHP_URL_HOST:
return isset( $bits['host'] ) ? $bits['host'] : null;
case PHP_URL_PATH:
return isset( $bits['path'] ) ? $bits['path'] : null;
case PHP_URL_PORT:
return isset( $bits['port'] ) ? $bits['port'] : null;
default:
return $bits;
}
}