使用 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: 无效 URL

这个检查的唯一问题是它只检查支架不平衡,而不是它的位置。