Como validar o nome de domínio em PHP?
É possível sem usar expressão regular?
Por exemplo, quero verificar se uma string é um domínio válido:
domain-name
abcd
example
São domínios válidos. Estes são inválidos, claro:
domaia@name
ab$%cd
E assim por diante. Então, basicamente, deve começar com um caractere alfanumérico, então pode haver mais caracteres alnum e também um hífen. E deve terminar com um caractere alnum também.
Se não for possível, você poderia me sugerir um padrão regular para fazer isso?
EDITAR:
Por que isso não funciona? Estou usando preg_match incorretamente?
$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');
}