在php中使用数组参数验证url


Validate url with array paramter in php?

我正在尝试为URL添加preg_match验证,如:

http://test.com/page/?param1[0=a&param2[1]=b

如果你在上面的例子中看到少了一个方括号。

我认为您不需要正则表达式。您可以简单地使用parse_url,它将为您进行解析和验证,然后您可以检查每个组件是否符合您的期望。

检查两个正则表达式,可能这对你有用

$website = 'http://test.com/page/?param1[0=a&param2[1]=b';
if (!preg_match("/'b(?:(?:https?|ftp):'/'/|www'.)[-a-z0-9+&@#'/%?=~_|!:,.;]*[-a-z0-9+&@#'/%=~_|]/i",$website) || !preg_match("/^[^'[']]*+('[(?>[^'[']]|(?1))*+'][^'[']]*+)*$/",$website)) {
    echo "Invalid URL"; 
}else{
    echo 'valid';
}

O/p: Invalid URL

这个检查的唯一问题是它只检查括号不平衡,而不是它的位置