protected static function validateUrl(array $urlConfig, array $p)
	{
		if ($p['scheme'] !== '' && !preg_match($urlConfig['allowedSchemes'], $p['scheme']))
		{
			return 'URL scheme is not allowed';
		}

		if ($p['host'] !== '')
		{
			/**
			* Test whether the host is valid
			* @link http://tools.ietf.org/html/rfc1035#section-2.3.1
			* @link http://tools.ietf.org/html/rfc1123#section-2
			*/
			$regexp = '/^(?!-)[-a-z0-9]{0,62}[a-z0-9](?:\\.(?!-)[-a-z0-9]{0,62}[a-z0-9])*$/i';
			if (!preg_match($regexp, $p['host']))
			{
				// If the host invalid, retest as an IPv4 and IPv6 address (IPv6 in brackets)
				if (!NetworkFilter::filterIpv4($p['host'])
				 && !NetworkFilter::filterIpv6(preg_replace('/^\\[(.*)\\]$/', '$1', $p['host'])))
				{
					return 'URL host is invalid';
				}
			}

			if ((isset($urlConfig['disallowedHosts']) && preg_match($urlConfig['disallowedHosts'], $p['host']))
			 || (isset($urlConfig['restrictedHosts']) && !preg_match($urlConfig['restrictedHosts'], $p['host'])))
			{
				return 'URL host is not allowed';
			}
		}
		elseif (preg_match('(^(?:(?:f|ht)tps?)$)', $p['scheme']))
		{
			return 'Missing host';
		}
	}
protected static function validateUrl(array $urlConfig, array $p)
	{
		if ($p['scheme'] !== '' && !preg_match($urlConfig['allowedSchemes'], $p['scheme']))
		{
			return 'URL scheme is not allowed';
		}

		if ($p['host'] !== '')
		{
			/**
			* Test whether the host is valid
			* @link http://tools.ietf.org/html/rfc1035#section-2.3.1
			* @link http://tools.ietf.org/html/rfc1123#section-2
			*/
			$regexp = '/^(?!-)[-a-z0-9]{0,62}[a-z0-9](?:\\.(?!-)[-a-z0-9]{0,62}[a-z0-9])*$/i';
			if (!preg_match($regexp, $p['host']))
			{
				// If the host invalid, retest as an IPv4 and IPv6 address (IPv6 in brackets)
				if (!NetworkFilter::filterIpv4($p['host'])
				 && !NetworkFilter::filterIpv6(preg_replace('/^\\[(.*)\\]$/', '$1', $p['host'])))
				{
					return 'URL host is invalid';
				}
			}

			if ((isset($urlConfig['disallowedHosts']) && preg_match($urlConfig['disallowedHosts'], $p['host']))
			 || (isset($urlConfig['restrictedHosts']) && !preg_match($urlConfig['restrictedHosts'], $p['host'])))
			{
				return 'URL host is not allowed';
			}
		}
		elseif (preg_match('(^(?:(?:f|ht)tps?)$)', $p['scheme']))
		{
			return 'Missing host';
		}
	}
protected static function validateUrl ( array $ urlConfig , array $ p ) { if ( $ p [ 'scheme' ] !== '' && ! preg_match ( $ urlConfig [ 'allowedSchemes' ] , $ p [ 'scheme' ] ) ) { return 'URL scheme is not allowed' ; } if ( $ p [ 'host' ] !== '' ) { /**
			* Test whether the host is valid
			* @link http://tools.ietf.org/html/rfc1035#section-2.3.1
			* @link http://tools.ietf.org/html/rfc1123#section-2
			*/ $ regexp = '/^(?!-)[-a-z0-9]{0,62}[a-z0-9](?:\\.(?!-)[-a-z0-9]{0,62}[a-z0-9])*$/i' ; if ( ! preg_match ( $ regexp , $ p [ 'host' ] ) ) { // If the host invalid, retest as an IPv4 and IPv6 address (IPv6 in brackets) if ( ! NetworkFilter :: filterIpv4 ( $ p [ 'host' ] ) && ! NetworkFilter :: filterIpv6 ( preg_replace ( '/^\\[(.*)\\]$/' , '$1' , $ p [ 'host' ] ) ) ) { return 'URL host is invalid' ; } } if ( ( isset ( $ urlConfig [ 'disallowedHosts' ] ) && preg_match ( $ urlConfig [ 'disallowedHosts' ] , $ p [ 'host' ] ) ) || ( isset ( $ urlConfig [ 'restrictedHosts' ] ) && ! preg_match ( $ urlConfig [ 'restrictedHosts' ] , $ p [ 'host' ] ) ) ) { return 'URL host is not allowed' ; } } elseif ( preg_match ( '(^(?:(?:f|ht)tps?)$)' , $ p [ 'scheme' ] ) ) { return 'Missing host' ; } }
Validate a parsed URL

@param  array      $urlConfig URL config
@param  array      $p         Parsed URL
@return string|null           Error message if invalid, or NULL
Validate a parsed URL