- var_dump: documentation ( source)
- parse_url: documentation ( source)
<?php
function set_url_scheme( $url ) {
return 'https://' . $url;
}
function get_home_url( $url ) {
return 'https://some.sub.domain.com/foo';
}
function multisite_url( $url ) {
$stage_url = parse_url( $url ) ?: [];
$current_site = parse_url( get_home_url() ) ?: [];
$result = '';
empty ( $current_site[ 'scheme' ] ) or $result .= $current_site[ 'scheme' ] . '://';
empty ( $current_site['user'] ) or $result .= $current_site['user'];
empty ( $current_site['pass'] ) or $result .= ":{$current_site['pass']}";
$result and $result .= '@';
empty ( $current_site['host'] ) or $result .= "{$current_site['host']}";
empty ( $current_site['port'] ) or $result .= ":{$current_site['port']}";
empty ( $current_site['path'] ) or $result .= untrailingslashit( "/{$current_site['path']}" );
empty ( $stage_url['path'] ) or $result .= "/{$current_site['path']}";
empty ( $stage_url['query'] ) or $result .= "?{$current_site['query']}";
empty ( $stage_url['fragment'] ) or $result .= "#{$current_site['fragment']}";
return set_url_scheme( $result );
}
var_dump( multisite_url('https://maindomain.com') );