Буду признателен за любую помощь, которая может быть предоставлена в этом вопросе.
Я создаю регистрационную форму, одно поле предназначено для домена пользователя, который, как я проверю, действителен с FILTER_VALIDATE_URL
, и что он существует с dns_check_record
.
Однако проблема, с которой я столкнулся, заключается в том, что использование этих двух методов также позволит отправлять субдомены в форму, которая мне не нужна.
Кто-нибудь знает способ разрешить домены, но не субдомены?
Я протестировал следующую функцию, начиная с http://syntax.cwarn23.net/PHP/Strip_URL_to_Domain:
function domain($domainb)
{
$bits = explode('/', $domainb);
if ($bits[0]=='http:' || $bits[0]=='https:')
{
$domainb= $bits[2];
} else {
$domainb= $bits[0];
}
unset($bits);
$bits = explode('.', $domainb);
$idz=count($bits);
$idz-=3;
if (strlen($bits[($idz+2)])==2) {
$url=$bits[$idz].'.'.$bits[($idz+1)].'.'.$bits[($idz+2)];
} else if (strlen($bits[($idz+2)])==0) {
$url=$bits[($idz)].'.'.$bits[($idz+1)];
} else {
$url=$bits[($idz+1)].'.'.$bits[($idz+2)];
}
return $url;
Однако это не идеально, поскольку любые домены, такие как www.domain.uk.com, будут отображаться как uk.com (я не знаю общего расширения домена).
Кто-нибудь знает метод лучше, чем приведенная выше функция?