PHP 域名访问限制:如何使用正则表达式判断查询字符串
可以使用正则表达式来判断问号后边是否有6位字符串,并且有一个点'.1'的特征。以下是修改后的代码:
$domain = $_SERVER['HTTP_HOST'];
if($domain === 'jk.fh.whsc.gay' && !strpos($_SERVER['REQUEST_URI'], '?')){
echo '未授权不允许访问!';
exit;
}
if(strpos($_SERVER['REQUEST_URI'], '?') !== false) {
$query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
if(preg_match('/^[a-zA-Z0-9]{6}$/', $query) && strpos($query, '.1') !== false) {
// 网站代码...
} else {
echo '未授权不允许访问!';
exit;
}
} else {
echo '未授权不允许访问!';
exit;
}
这段代码首先判断域名是否为'jk.fh.whsc.gay',如果不是则输出'未授权不允许访问!'并终止脚本。
然后判断请求URI中是否包含问号,如果不包含则输出'未授权不允许访问!'并终止脚本。
如果包含问号,则使用parse_url()函数解析出查询字符串,并使用正则表达式/^[a-zA-Z0-9]{6}$/判断查询字符串是否为6位字母和数字的组合。
同时使用strpos()函数判断查询字符串中是否包含'.1',如果满足这两个条件,则执行网站代码。如果不满足条件,则输出'未授权不允许访问!'并终止脚本。
原文地址: http://www.cveoy.top/t/topic/bGrX 著作权归作者所有。请勿转载和采集!