Вот функция, которая есть в моем проекте OpenSource и которая может вам помочь.Я использовал функцию PHP filtar_var для проверки.
public function ValidateHost($Host)
{
if(isset($Host))
{
if(!is_null($Host) && !empty($Host))
{
if(strstr($Host, ".") && strlen($Host) > 3 && strlen($Host) < 255 && (!strstr($Host, "..")) && (!strstr($Host, " "))
&& preg_match('/[a-zA-Z]+/', $Host) && (!strstr($Host, "@")) &&
!(preg_match('/([^.]*[.][0-9]*$)/', $Host)) && filter_var(FILTER_VALIDATE_URL) == true)
return Config::RET_OK;
else return Config::INVALID_HOST_NAME;
}
else return Config::INVALID_NULL;
}
else return Config::INVALID_NULL;
}
Если вы хотите проверить, вот мой проект: InfraTools