0

我有一个简单的问题。我需要验证一个字符串并验证这样的白名单域:

$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

如何解决这个问题?:)

4

3 回答 3

2

试试这个,它会删除从www第一个点(包括)开始的所有内容:

$Dominio = preg_replace('~^www[^.]*\.~', '', parse_url($EnlaceUrl,PHP_URL_HOST));
于 2013-10-20T17:25:35.833 回答
1

你可以使用这个:

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

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

于 2013-10-20T17:30:26.640 回答
0

另一个 preg_match 示例:

if(preg_match("/(?:([^.]+).)?([^.]+).([^\\/]+)/", $Dominio, $m)) {
    $Dominio = $m[2] . '.' $m[3];
}
于 2013-10-20T17:40:52.213 回答