使用正则表达式来阻止域

时间:2012-01-16 10:15:09

标签: php regex

我正在创建一个黑名单,我想阻止给定网址的所有变体。例如,

www.google.com
google.com
google.com/maps
sub.google.com
google.com/dir/dir2/dir3

我对RegEx几乎一无所知,到目前为止,我有这种微弱的尝试:

$blacklist = array(
'\.google.\\',
); 

有人能帮助我吗?

编辑:

我还想阻止具有特定扩展名的所有域名,例如     。我     .XXX

2 个答案:

答案 0 :(得分:1)

如果您只是在进行pre_match,那么您可能只需要以下内容:

<?php
$subject = "somedomain";
$pattern = '/\.google\./';
if(preg_match($pattern, $subject)){
    die('blacklisted');
}
?>

答案 1 :(得分:0)

如果您只想阻止域名,那么为什么不简单地使用strpos它真的很好,速度快于正则表达式匹配简单模式匹配..查看链接

$domain_name = "www.maps.google.com";
if(strpos($domain_name,"google") > 1)
    do sumthing here
else
    do sumthing

希望它有所帮助:)