我需要一个具有查询字符串的URL验证函数(参数与&分开)。目前我有以下功能验证网址使用PHP查询字符串验证的URL
$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)[email protected])?([\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
...等
但这不会验证URL输入当它带有参数(查询字符串)时。例如。
http://google.com/index.html?prod=gmail&act=inbox
我需要一个接受这两种类型的URL输入的函数。请帮忙。提前致谢。
FTR,我认为最明智的做法,以确保该方案存在将是`$ parsed = parse_url($ str);如果(!isset($ parsed ['scheme']))$ url =“http:// $ url”;` – DaveRandom 2011-12-14 13:48:11
Thankyou,用您的评论更新 – 2011-12-14 13:53:29