验证域白名单的脚本


Script that verify a whitelist of domains

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

$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}

但是这种方法不会限制我的域,例如:

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

如何解决这个问题?:)

试试这个,删除所有以www开头直到第一个点(包括):

$Dominio = preg_replace('~^www[^.]*'.~', '', parse_url($EnlaceUrl,PHP_URL_HOST));

你可以使用这个:

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

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

另一个preg_match的例子:

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