我有一个简单的问题。我需要验证一个字符串并验证一个白名单域,如下所示:
$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];
}