Php 验证域白名单的脚本

Php 验证域白名单的脚本,php,regex,Php,Regex,我有一个简单的问题。我需要验证字符串并验证白名单域,如下所示: $WList = array('mega.co.nz','mediafire.com','putlocker.com',''); $Dominio = str_replace("www.","",parse_url($EnlaceUrl,PHP_URL_HOST)); if(in_array($Dominio,$WList)){//ok} 但此方法不会重新设置me域,例如: www42.zippyshare.com,www51.z

我有一个简单的问题。我需要验证字符串并验证白名单域,如下所示:

$WList = array('mega.co.nz','mediafire.com','putlocker.com','');
$Dominio = str_replace("www.","",parse_url($EnlaceUrl,PHP_URL_HOST));
if(in_array($Dominio,$WList)){//ok}
但此方法不会重新设置me域,例如:

www42.zippyshare.com,www51.zippyshare.com,www71.zippyshare.com,www23.zippyshare.com

如何解决这个问题?:)

尝试此操作,删除所有以
www
开头的内容,直到第一个点(包括):


尝试此操作,删除从
www
开始直到第一个点(包括)的所有内容:


尝试此操作,删除从
www
开始直到第一个点(包括)的所有内容:


尝试此操作,删除从
www
开始直到第一个点(包括)的所有内容:

您可以使用以下选项:

if (preg_match('/[\w\d-]+\.(\w{3,4}|(\w{2,3}\.\w{2}))$/', $Dominio, $match))
    $Dominio = $match[1];
它将
anything.domainname.suffix
转换为
domainname.suffix
,以便您可以根据列表进行测试。

您可以使用以下方法:

if (preg_match('/[\w\d-]+\.(\w{3,4}|(\w{2,3}\.\w{2}))$/', $Dominio, $match))
    $Dominio = $match[1];
它将
anything.domainname.suffix
转换为
domainname.suffix
,以便您可以根据列表进行测试。

您可以使用以下方法:

if (preg_match('/[\w\d-]+\.(\w{3,4}|(\w{2,3}\.\w{2}))$/', $Dominio, $match))
    $Dominio = $match[1];
它将
anything.domainname.suffix
转换为
domainname.suffix
,以便您可以根据列表进行测试。

您可以使用以下方法:

if (preg_match('/[\w\d-]+\.(\w{3,4}|(\w{2,3}\.\w{2}))$/', $Dominio, $match))
    $Dominio = $match[1];

它将
anything.domainname.suffix
转换为
domainname.suffix
,以便您可以根据列表进行测试。

另一个预匹配示例:

if(preg_match("/(?:([^.]+).)?([^.]+).([^\\/]+)/", $Dominio, $m)) {
    $Dominio = $m[2] . '.' $m[3];
}

另一个preg_match示例:

if(preg_match("/(?:([^.]+).)?([^.]+).([^\\/]+)/", $Dominio, $m)) {
    $Dominio = $m[2] . '.' $m[3];
}

另一个preg_match示例:

if(preg_match("/(?:([^.]+).)?([^.]+).([^\\/]+)/", $Dominio, $m)) {
    $Dominio = $m[2] . '.' $m[3];
}

另一个preg_match示例:

if(preg_match("/(?:([^.]+).)?([^.]+).([^\\/]+)/", $Dominio, $m)) {
    $Dominio = $m[2] . '.' $m[3];
}


你到底想要什么?EnlaceUrl是从哪里来的?你到底想做什么?$Dominio=preg_replace(“/www(.*?\/”,”),parse_url($EnlaceUrl,PHP_url_HOST));你到底想要什么?EnlaceUrl是从哪里来的?你到底想做什么?$Dominio=preg_replace(“/www(.*?\/”,”),parse_url($EnlaceUrl,PHP_url_HOST));你到底想要什么?EnlaceUrl是从哪里来的?你到底想做什么?$Dominio=preg_replace(“/www(.*?\/”,”),parse_url($EnlaceUrl,PHP_url_HOST));你到底想要什么?EnlaceUrl是从哪里来的?你到底想做什么?$Dominio=preg_replace(“/www(.*?\/”,”),parse_url($EnlaceUrl,PHP_url_HOST));我猜文字点也应该是匹配的一部分。我猜文字点也应该是匹配的一部分。我猜文字点也应该是匹配的一部分。我猜文字点也应该是匹配的一部分。使用此regexp,我将毫无例外地检索域名和后缀?ej subdomain.domain.com、www1.subdomain.com、w.subdomain.com是的,
blah.domain.co.uk
将返回
m[1]=“blah”,m[2]=“domain”,m[3]=“co.uk”
使用此regexp,我将毫无例外地检索域和后缀?ej subdomain.domain.com、www1.subdomain.com、w.subdomain.com是的,
blah.domain.co.uk
将返回
m[1]=“blah”,m[2]=“domain”,m[3]=“co.uk”
使用此regexp,我将毫无例外地检索域和后缀?ej subdomain.domain.com、www1.subdomain.com、w.subdomain.com是的,
blah.domain.co.uk
将返回
m[1]=“blah”,m[2]=“domain”,m[3]=“co.uk”
使用此regexp,我将毫无例外地检索域和后缀?ej subdomain.domain.com、www1.subdomain.com、w.subdomain.com是,
blah.domain.co.uk
将返回
m[1]='blah',m[2]='domain',m[3]='co.uk'