我需要一个带有查询字符串(用 & 分隔的参数)的 URL 的 PHP 验证函数。目前我有以下用于验证 URL 的功能
$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/';
echo preg_match($pattern, $url);
此函数正确验证输入,例如
google.com
www.google.com
http://google.com
http://www.google.com
...ETC
但这不会验证带有参数(查询字符串)的 URL。例如。
http://google.com/index.html?prod=gmail&act=inbox
我需要一个接受这两种类型的 URL 输入的函数。请帮忙。提前致谢。