Как проверить доменное имя в PHP?

Возможно ли это без использования регулярных выражений?

Например, я хочу проверить, что строка является допустимым доменом:

domain-name
abcd
example

Являются действительными доменами. Это недействительно, конечно:

domaia@name
ab$%cd

И так далее. Таким образом, в основном это должно начинаться с буквенно-цифрового символа, тогда может быть больше символов alnum плюс также дефис. И это также должно заканчиваться символом alnum.

Если оно'не возможно, не могли бы вы предложить мне шаблон регулярного выражения для этого?

РЕДАКТИРОВАТЬ:

Почему нетэто работа? Я использую preg_match неправильно?

$domain = '@djkal';
$regexp = '/^[a-zA-Z0-9][a-zA-Z0-9\-\_]+[a-zA-Z0-9]$/';
if (false === preg_match($regexp, $domain)) {
    throw new Exception('Domain invalid');
}

Ответы на вопрос(17)

Ваш ответ на вопрос