我有一个简单的问题。我需要验证字符串并验证白名单域,如下所示:
$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
如何解决这个问题? :)
答案 0 :(得分:2)
尝试这样可以删除所有以www
开头的内容,直到第一个点(包括):
$Dominio = preg_replace('~^www[^.]*\.~', '', parse_url($EnlaceUrl,PHP_URL_HOST));
答案 1 :(得分:1)
您可以使用:
if (preg_match('/[\w\d-]+\.(\w{3,4}|(\w{2,3}\.\w{2}))$/', $Dominio, $match))
$Dominio = $match[1];
它会将anything.domainname.suffix
转换为domainname.suffix
,以便您可以针对您的列表进行测试。
答案 2 :(得分:0)
另一个preg_match示例:
if(preg_match("/(?:([^.]+).)?([^.]+).([^\\/]+)/", $Dominio, $m)) {
$Dominio = $m[2] . '.' $m[3];
}