pabamato
10/21/2019 - 10:38 PM

WordPress - Clean domain from webaite URL

<?php

$url = 'http://www.subdomain1.subdomain2.subdomain3.maindomain.co.uk/asdasdsad/?asdsad=0&asdad=1&sadsa=2';
pretty_debug( op_get_domain( $url ) );

/**
 * Return main domain from URL
 *
 * @param  string $url URL to extract from.
 * @return mixed       Domain | false
 *
 * @see https://www.codexworld.com/how-to/get-domain-name-from-url-php/.
 */
function op_get_domain( $url = '' ) {
	$url    = empty( $url ) ? get_site_url() : $url;
	$domain = wp_parse_url( $url, PHP_URL_HOST );
	if ( preg_match( '/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs ) ) {
		return $regs['domain'];
	}
	return false;
}

/**
 * Debug function
 *
 * @param  array   $arr The array.
 * @param  boolean $die Stop execution flag.
 * @return void
 */
function pretty_debug( $arr, $die = true ) {
    echo '<pre>';// phpcs:ignore
    var_export( $arr );// phpcs:ignore
    echo '</pre>';// phpcs:ignore
	if ( $die ) {
		die();
	}
}