一级域名和二级域名的判断

zhaidou 发布于 2012/07/07 08:49
阅读 1K+
收藏 0

这是判断url的一个方法

如何只判断一级域名和二级域名,对于子目录的不需要。

比如支持下面的格式

http://www.abc.com

https://www.abc.com

1.abc.com

function is_url($str) {
	$regex = "((https?)\:\/\/)?"; // SCHEME
	$regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?"; // User and Pass
	$regex .= "([a-z0-9-.]*)\.([a-z]{2,3})"; // Host or IP
	$regex .= "(\:[0-9]{2,5})?"; // Port
	$regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"; // Path
	$regex .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"; // GET Query
	$regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?"; // Anchor
	return preg_match("/^$regex$/", strtolower($str));
}

如何改进上面的代码

以下是问题补充:

@zhaidou:是不是需要去掉 $regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"; // Path (2012/07/07 08:50)
加载中
返回顶部
顶部