很多场景要在后台录入访问域名的白名单列表,然后判断列表,限制访问的来路。
这里有thinkphp后台的 限制判断逻辑代码
$plat = $this->request->post("plat",0);
$search = urldecode($this->request->request("keyword",""));
$domainStr = "";
$res = Db::query('select group_concat( domain separator "|" ) as content from hack_domain where plat=? ',[$plat] ) ;
if(!empty($res)){
$domainStr = str_replace([".","/"], ["\.","\/"], $res[0]['content']) ;
}
$result = [];
try{
$pattern = "/^((http:\/\/)|(https:\/\/)|(\/\/))?([0-9a-zA-Z\._:\-]*[\.@])?(" . $domainStr . ")(:[0-9]+)?(\.*)?$/";
preg_match ($pattern,$search, $result);
} catch (\Exception $e){
return $this->json([
'ismatch'=>0,
'result'=>"表达式出错误了请联系管理员",
]);
}
if(!empty($result)){
//匹配正确
if($search == $result[0]){
return $this->json([
'ismatch'=> 1,
'result'=> $result,
]);
}
}
return $this->json([
'ismatch'=> 0,
'result'=> $result,
]);
好 了,感谢你的阅读,希望对你有所帮助。谢谢。