编程语言
首页 > 编程语言> > PHP-使用REGEX使用GET参数验证域名

PHP-使用REGEX使用GET参数验证域名

作者:互联网

我正在尝试验证域是否确实具有带有preg_match和REGEX的GET参数,而我需要它用于我的目的.

我正在做的是验证没有GET参数的域,如下所示:

if (preg_match("/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}$/", 'domain.com')) {
        echo 'true';
} else {
        echo 'false';
}

这个测试我是正确的.

到现在为止还挺好.我遇到的麻烦是添加了GET参数,在我尝试过仍然不走运的许多REGEX中,以下内容是:

if (preg_match("/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}([/?].*)?$/", 'domain.com?test=test')) {
        echo 'true';
} else {
        echo 'false';
}

在这里,我得到了错误的返回值,因此无法使用所需的GET参数来验证域.

任何帮助将不胜感激^^

问候

解决方法:

此代码未经测试,但我认为它应该可以工作:

$pattern = "([a-z0-9-.]*)\.([a-z]{2,3})"; //Host
$pattern .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"; //Get requests
if (preg_match($pattern, 'domain.com?test=test')) {
        echo 'true';
} else {
        echo 'false';
}

标签:preg-match,php,regex
来源: https://codeday.me/bug/20191031/1978651.html